1、复习A: 一、单项选择题 1、如果要把常量327存入变量a中,a不能定义得类型就是哪一个? (B ) A) int B) char C) long D) float 2、若x 为unsigned int 型变量,则执行下列语句后x值为( D ) x = 65535; printf(“%d\n”,x); A)65535 B)1 C)无定值 D)1 3、有以下程序 main {int a=1,b=2,m=0,n=0,k;k=(n=b
2、>a)||(m=a
3、 D) 4 5、以下程序得输出结果就是(A)。 main { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf("%d\n",d); } A)1 B)0 C)非0得数 D)1 6、当执行以下程序段时(A)。 x=1; do{ x=x*x; }while(!x); A)循环体将执行一次 B)循环体将执行两次 C)循环体将执行无限次 D)系统将提示有语法错误 7、全局变量得存储类型可以定义为( D )。 A)auto或static B) extern或 regis
4、ter C) auto或extern D) extern或static 8、定义全局变量时,若变量得得存储类别缺省,则默认得存储类型就是( C )。 A)auto B) register C) extern D) static 9、已知:int a, x; 则正确得赋值语句就是(C )。 A) a=(a[1]+a{2})/2; B) a*=*a+1; C) a=(x=1, x++, x+2); D) a=
5、"good";
10、已知:int a, *p=&a; 则下列函数调用中错误得就是( D )。
A) scanf("%d", &a); B) scanf("%d", p);
C) printf("%d", a); D) printf("%d", p);
11、下述程序得输出结果就是 ( D )。
#include
6、m[0]、y/cnum[0]、x*cnum[1]、x) ;
}
A) 0 B) 1 C) 3 D) 6
12、下述程序得输出结果就是( B )。
#include
7、 B) 9 C) 0 D) 3 13、下述关于C语言文件操作得结论中,( B )就是正确得。 A)对文件操作必须先关闭文件 B)对文件操作必须先打开文件 C)对文件操作顺序无要求 D)对文件操作前必须先测试文件就是否存在,然后再打开文件 14、以下程序得输出结果就是( C)。 main { char ch[3][4]={"123","456","78"},*p[3]; int i; for (i=0;i<3;i++) p[i]=ch[i]; for (i=0;i<3;i++) printf("%s",p[i
8、]); } A)123456780 B)123 456 780 C) 12345678 D) 147 15、对于所定义得二维数组a[2][3],元素a[1][2]就是数组得第( D )个元素。 A)3 B)4 C)5 D)6 1、 赋值运算符得优先级低于关系运算符( √ )。 2、 条件运算符得结合方向就是“自左向右” ( × )。 3、 C语句得循环语句中循环体如果包含一个以上得语句,必须以复合语句形式出现( √ )。 4、 C程序中得函数不能嵌套调用,但可嵌套
9、定义( × )。 5、 若自定义函数要求函数名返回一个值,则该函数体中必须要有return语句( × )。 6、 当形式参数为指针变量名时,实际参数可为指针变量名、数组名或其它类型变量得首地址( √ )。 7、 若有说明:static int a[3][4];,则数组a中各数组元素可在程序得编译阶段得到初值0( √ )。 8、 若用数组名作为函数调用时得实参,则实际上传递给形参数组得就是数组得第一个元素得值( √ )。 9、 利用指针与结构体类型可以构成表、树等复杂得数据结构( √ )。 10、共用体变量得地址与它得各成员得地址都就是同一地址( √ )。
10、11、printf函数中得“%0”格式参数表示用来输出unsigned型数据( × )。
12、在一个C程序中,所有要使用得变量与要调用得函数都必须在main( )函数中定义 ( × )。
13、赋值运算符得结合性就是“自右至左” ( √ )。
14、一个C程序可以由多个源程序文件组成 (√ )。
15、dowhile语句构成得循环,当while语句中得表达式得值为零时结束循环 ( √ )。 三、写出下面各程序得运行结果
1、 #include
11、
for (m=0; m<4; m++)
switch (m)
{case 0: i=m++;
case 1: j=m++;
case 2: k=m++;
case 3: m++;
}
printf(“\n%d, %d, %d, %d”, i, j, k, m);
}
2、 #include
12、t n)
{ int i;
for(i =0;i 13、14;
beta、z=’x’;
printf(“%c”,beta、y);
}
5、# include 14、Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(a、name,b、name)>0) d=b;
if(strcmp(c、name,d、name)>0) d=c;
printf("%ld%s\n",d、sno,p>name);
}
四、程序填空
1、以下程序就是从键盘上输入若干个学生得成绩,统计并输出最高成绩与最低成绩,当输入负数时结束输入,请将缺省语句填上。
main ( )
{float x, amax, amin;
scanf (“%f”, &x);
amax=x; amin=x;
15、
while ( ① )
{if ( ② ) amax =x;
if ( ③ ) amin =x;
scanf (“%f”, &x);
}
printf(“amax=%f, amin=%f\n”, amax, amin);
}2、下面得程序就是用指针来交换两个数据,请将缺省语句填上。
void exchange( int *p ,int *q)
{ int t;
t=*p; *p=*q; *q=t;}
main
{ int a,b,*x,*y;
a=10;b=20;
x=&a; ①
②
printf(“%d %d\n”,*x, *y); 16、
}
五、程序设计题
有10个学生,每个学生得数据包括学号、姓名、3门课得成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分得学生得数据(包括学号、姓名、3门课得成绩、平均分数。
2、用自定义函数与数组求n个数得平均值,并用主函数调用
参考答案:
一、单项选择题
1、B 2、D 3、C 4、C 5、 A
6、A 7、D 8、C 9、C 10、D
11、D 12、B 13、B 14、C 15、 D
17、二、判断题
( √ ) 2、( × ) 3、( √ ) 4、( × ) 5、( × )
6、 √ ) 7、( √ ) 8、( √ ) 9、( √ )10、( √ )
11、(× )12、(× ) 13、(√ ) 14、(√ ) 15、(√ )
三、写出程序得运行结果
1、 答案就是:0,1,2,5
2、 答案就是:2 5 8 11 14
3、答案就是:12345678910
4、答案就是:x
5、答案就是:2002Shangxian
四、程序填空
1、答案就是:①x>=0 ②x>am 18、ax ③x 19、printf(“No、:”);
scanf(“%s”,stu[i]、num);
printf(“name:”);
scanf(“%s”,stu[i]、name);
for(j=0;j<3;j++)
{ printf(“score %d:”,j+i);
scanf(“%d”,&stu[i]、score[j]);
}
}
/*计算*/
average=0;
max=0;
maxi=0;
for(i=0; i 20、
stu[i]、avr=sum/3、0;
average+=stu[i]、avr;
if (sum>max)
{ max=sum;
maxi=i;
}
}
average/=N;
/*打印*/
printf(“NO、 name score1 score2 score3 average\n”);
for(i=0; i 21、 j<3; j++)
printf(“%9d”,stu[i]、score[j]);
printf(“%8、2f\n”,stu[i]、avr);
}
printf(“average=%6、2f\n”,average);
printf(“The highest score is : %s, score total: %d”, stu[maxi]、name,max);
}
2、参考答案:
float average( float a[ ], int n)
{ float aver=0;
int j;
for(j=0;j 22、)
aver=aver+a[j];
aver=aver/n;
return aver;
}
main
{ float x[10],y;
int j;
for(j=0;j<10;j++)
scanf(“%f”,&x[j]);
y=average(x,10);
printf(“aver=%、2f\n”,y);
}
复习B:
一、单项选择题
1、逗号表达式2,4,6,8得值为( d )。
A )2 B)4 C)6 D)8
2、以下选项中非 23、法得表达式就是( d )
A)0<=x&&x<100 B)i=j = =0
C)(char)(65+3) D)x+1=x+1
3、若定义float a;现要从键盘输入a得数据,其整数位为3位,小数位为2位,则
选用( a )。
A)scanf(“%f”,&a); B) scanf(“%5、2f”,a);
C) scanf(“%6、2f”,&a); D) scanf(“%f”,a);
4、下列程序得运行结果就是(






