C语言补考复习题填空及程序题答案
二、填空
第1题
C语句句尾用___;_______结束.
第2题
C语言中一个函数由函数首部和___函数体__________两部分组成.
第3题
C语言的三种基本结构是___顺序___________结构、选择结构、循环结构.
第4题
c语言程序的三种基本结构是:顺序结构,选择结构,______循环________结构.
第5题
预处理命令行都必须以______#________号开始.
第6题
从函数的形式上看,函数分为无参函数和______有参函数________两种类型.
第7题
若在程序中用到strlen()函数时,应在程序开头写上包含命令# include "______string.h________".
第8题
C语言中,数组元素的下标下限为______0________.
第9题
将数组a的首地址赋给指针变量p的语句是______p=a________.
第10题
变量的指针,其含义是指该变量的______地址________.
第11题
一个C程序总是从______main函数________开始执行.
第12题
一个C源程序中至少应包括一个______main________函数.
第13题
执行下列语句后,*(p+1)的值是______b________.
char s[3]="ab",*p;
p=s;
第14题
按内存排列顺序, 数组char a[2]中的所有元素是a[1]和______a[0]________.
第15题
若有定义:double w[10];
则w数组元素下标的上限为_____9______,下限为_____0______.
三、程序填空
第1题
请补充main函数,该函数的功能是:从键盘输入一个字符串并保
存在字符str1中,把字符串str1中下标为偶数的字符保存在字符
串str2中并输出。
例如,当str1="cdefghij",则str2="cegi"。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define LEN 80
void main()
{
char str1[LEN],str2[LEN];
char *p1=str1,*p2=str2;
int i=0,j=0;
system("CLS");
printf("Enter the string:\n");
/***********SPACE***********/
scanf( 【?】);
printf("***the origial string***\n");
while(*(p1+j))
{
/***********SPACE***********/
printf("【?】",*(p1+j));
j++;
}
for(i=0;i<j;i+=2)
*p2++=*(str1+i);
*p2='\0';
/***********SPACE***********/
printf("\nThe new string is:%s\n",【?】);
}
答案:
=======(答案1)=======
"%s",str1
=======(答案2)=======
%c
=======(答案3)=======
str2
第2题
功能:从键盘输入一个大写字母赋给c1,要求改用小写字母输出。
#include <stdio.h>
void main()
{
char c1,c2;
/***********SPACE***********/
c1= 【?】;
/***********SPACE***********/
c2= 【?】;
printf("%c,%c",c1,c2);
}
答案:
=======(答案1)=======
getchar()
=======(答案2)=======
c1+32
第3题
题目:下列程序从键盘输入所需数据,求出z的值并输出,要求输出结果保留2位小数。
#include <stdio.h>
/***********SPACE***********/
【?】
main()
{ int x;
double y,z;
/***********SPACE***********/
scanf("【?】",&x,&y);
z=2*x*sqrt(y);
/***********SPACE***********/
printf("z=【?】",z);
}
答案:
=======(答案1)=======
#include<math.h>
=======(答案2)=======
%d%lf
=======(答案3)=======
%.2lf
四、程序改错
第1题
题目:下列程序的功能为:按下列公式计算并输出x的值。其中a和b的值由键盘输入。请纠正程序中存在的错误,使程序实现其功能。公式: x=2ab/(a+b)^2(平方)
#include <stdio.h>
main()
{
int a,b;
double x;
/***********FOUND***********/
scanf("%d,%d",a,b);
/***********FOUND***********/
x=2ab/(a+b)(a+b);
/***********FOUND***********/
printf("x=%d\n",x);
}
答案:
=======(答案1)=======
scanf("%d,%d",&a,&b);
=======(答案2)=======
x=2.0*a*b/((a+b)*(a+b));
=======(答案3)=======
printf("x=%f\n",x);
五、程序设计
第1题
题目:已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均分。
#include <stdio.h>
void main( )
{
int math, eng, comp, average;
/**********Program**********/
/********** End **********/
printf("math = %d, eng = %d, comp = %d, average = %d\n", math, eng, comp, average);
}
答案: math = 87;
eng = 72;
comp = 93;
average = (math + eng + comp) / 3;
第2题
题目:从键盘给n赋值,分别求出 n 的个位数字(digit1)、十位数字(digit2)和百位数字(digit3)的值。
#include <stdio.h>
void main( )
{
int n, digit1, digit2, digit3;
/**********Program**********/
/********** End **********/
printf("整数%d的个位数字是%d, 十位数字是%d, 百位数字是%d\n", n, digit1, digit2, digit3);
}
答案: n = 152;
digit1 = n % 10;
digit2 = (n / 10) % 10;
digit3 = n / 100;
第3题
题目:计算表达式 1 + 2 + 3 + ...... + 100的值。
#include <stdio.h>
void main( )
{
int i, sum;
/**********Program**********/
/********** End **********/
printf("sum = %d\n", sum);
}
答案: sum = 0;
for(i = 1;i <= 100;i++)
sum = sum + i;