5.已知字母A的ASCII码为十进制65,下面程序段的运行结果为:。
char ch1,ch2;
ch1= …A‟+5-3; ch2= …A‟+6-3;
printf(“%d, %c\n”, ch1,ch2);
A)67, D B)B, C
C)C, D D)不确定值
6.根据定义和数据的输入方式,输入语句的正确形式为:。
已有定义:float a1, a2;
数据的输入方式: 4.523
3.52
A)scanf(“%f %f ”, &a1,&a2);
B)scanf(“%f ,%f ”, a1, a2);
C)scanf(“%4.3f ,%3.2f ”, &a1,&a2);
D)scanf(“%4.3f %3.2f ”, a1,a2);
7.在C语言中,多分支选择结构语句为:
switch(c)
{ case 常量表达式1:语句1;
……
case 常量表达式n-1:语句n-1;
default 语句n;}
其中括号内表达式c的类型:。
A)可以是任意类型B)只能为整型
C)可以是整型或字符型D)可以为整型或实型
8.以下能对二维数组a进行正确说明和初始化的语句是:。
A)int a( )(3)={ ( 1, 0, 1 ), ( 2, 4, 5 ) }
B)int a[2][]={ { 3, 2, 1 }, { 5, 6, 7 } }
B)int a[][3]={ { 3, 2, 1 }, { 5, 6, 7 } }
D)int a(2)( )={ ( 1, 0, 1 ), ( 2, 4, 5 ) }
9.下面有关形参的说明语句中正确的是:。
A)形参在被调函数中定义,当被调定义完后形参就将占用内存空间,并将获得值。
B)形参只有在发生函数调用时才会被分配内存空间,才会获得值,且调用结束后又会消失。
C)形参将会在程序编译阶段获得内存空间和值,且在整个程序运行过程中都将保持。
D)以上说法都不正确。
10.以下程序的输出结果是:。
main( )
{ int I=012, j=12, k=0x12;
printf(“%d,%d,%d\n”,I, j, k );
A)10, 12, 18 B)12, 12, 12
C)10, 12, 12 D)12, 12, 18
11.以下叙述中不正确的是。
A) C语言中的文本文件以ASCII码形式存储数据
B) C语言中对二进制位的访问速度比文本文件快
C) C语言中,随机读写方式不使用于文本文件
D) C语言中,顺序读写方式不使用于二进制文件
12.以下程序的运行结果是:。
main( )
{ int n=4;
while(n--)
printf (“%2d”,--n);}
A)2 0 B)3 1
C)3 2 1 D)2 1 0
13.以下程序的功能是:按顺序读入10名学生的4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{int n,k;
float score,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{for(k=1;k<=4;k++)
{scanf("%f",&score);sum+=score};}
ave=sum/4.0;
printf("NO%d:%f\n",n,ave);
}
}
上述程序有一条语句出现在程序的位置不正确。这条语句是。
A)sum=0.0; B)sum+=score;
C)ave=sum/4.0; D)printf("NO%d:%f\n",n,ave);
14.设有如下函数定义:
int f(char * s)
{ char *p=s;
while(*p!= …\0‟ ) p++;
return(p-s); }
如果在主函数中用下面语句调用该函数,则输出结果应为:。
printf(“%d\n”, f(“goodbye!”) );
A)3 B)6 C)8 D)0
15.下面程序的输出结果是:。
int m=13;
int fun( int x, int y)
{ int m=3;
return( x*y-m); }
main( )
{ int a=7,b=5;
printf(“%d\n”, fun(a,b)/m); }
A)1 B)2 C)7 D)10
二、判断题(本大题10分,每小题1分)
1.C程序是按书写的顺序执行的。()
2.在C语言中,int、char和short三种类型数据在内存中所占用的字节数都是一样的。()
3. 在C程序中语句是以分号结束的。()
4.在C语言的if语句中,else可以单独出现。()
5.在C语言中break和continue都是循环中途退出语句,其中break语句用来跳出一次循环结构;continue语句用来结束一层循环。()
6.C语言中while和do-while循环的主要区别是do-while语句的循环体至少会被执行一次,而while语句的循环体则可能一次也不执行。()
7.数组首地址不仅能通过数组中第一个元素的地址表示,也可以通过数组名来表示。()
8.在C语言中,函数strcpy是用来连接字符串的。()
9.函数的返回值类型是由函数的类型和return语句中表达式的类型共同决定的,当这两类型不一致时最终起决定作用的是return中表达式的类型。()
10.由于指针变量存储的是地址,指针变量被定义之后可以指向任一类型的变量。()
三、程序填空题(本大题12分,每小题2分)
1.以下程序可求出所有水仙花数(指3位正整数中各位数字立方和等于该数本身,如153=13+53+33),请填空。
main( )
{ int x, y ,z, a[10], m, i=0;
printf(“shui xian huan shu :\n”);
for(____(1)____;m<1000;m++)
{ x=m/100;
y=____(2)____;
z=m%10;
if(m==x*x*x+y*y*y*y+z*z*z)