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 (“-”,--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(\ave=sum/4.0;
printf(\} }
上述程序有一条语句出现在程序的位置不正确。这条语句是 。 A)sum=0.0; B)sum+=score;
C)ave=sum/4.0; D)printf(\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;
if(m==x*x*x+y*y*y*y+z*z*z) {____(3)____; i ++; } } for( x=0;x
printf(“m”,a[x] ) ; }
2. 以下程序可计算10名学生1门功课成绩的平均分,请填空。 float average( float array[10] )
{ int i; float aver, sum=array[0]; for ( i=1; ____(4)____;i++) sum+=____(5)____; aver=sum/10; return(aver); } main( )
{ float score[10], aver ; int i ; printf(“\\ninput 10 scores:”);
for(i=0; i<10;i++) scanf(“%f”,&score[i] ); aver =____(6)____;
printf(“\\naverage score is %5.2f\\n”, aver); }
四、写出下面程序的执行结果(本大题24分,每小题4分) 1.main( ) { int i=2,p; p=f( i++, ++i ); printf(“%d”, p); } int f( int a, int b ) { int c;
if(a>b) c=1;
else if(a==b) c=0; else c=-1; return(c); }
2.# include main( ) { int i, j ;
for ( i = 0 ; i<= 3; i++ ) { for ( j = 0; j<=5 ; j++ )
{ if ( i==0|| j==0|| i==3|| j==5) printf(“*”); else printf( “ ” ) ;} printf(“\\n”); } } 3. main() {int n=0;
while(n++<=1); printf(\printf(\}
4.int a=5; int b=7;
main( ) { int a=4, b=5,c;
c=plus (a,b); printf(“A+B=%d\\n”,c) ; }
plus (int x, int y) { int z; z=x+y; return (z); } 5. #include main()