考生注意:请将答案写在答题纸上
一、 选择题(20分,每题2分)
1. 下面标示符中,不合法的用户标示符为::
A. Do B. 2ab C. a_14 D. printf 2. 有如下定义,对a数组元素地址的正确引用为: int a[5],*p=a;
A 、*(p+5) B、*p+2 C、a+2 D、*&a[5]
3. 设x,y均为整型变量,且x=10,y=3,则以下语句的输出结果是:
printf(“%d,%d\\n”,x--,--y) ;
A、 10,3 B、 9,3 C、 9,2 D) 10,2 4. 在C语言中,字符在内存中均以( )形式存储
A、原码 B、补码 C、反码 D、ASCII码
5. 若变量 int x=12,则执行表达式y=x>12?x+10:x-12;后y的值:
A、4 B、0 C、22 D12 6. 以下对二维数组的初始化,错误的是( )
A、a[3][3]={1,2,3,4,5} B、a[3][3]={{1,2},{3,4},{5}} C、a[][3]={{1,2},{3,4},{5}} D、a[][3]={{1,2,3},{4,5},{}} 7. 下面关于switch语句和break语句的结论中,只有()是不正确的
A、break语句不是switch语句中的一部分
B、在switch语句中可以根据需要使用或不适用break语句 C、在switch语句中必须使用break 语句 D、以上三个结论中有两个是正确的 8. 执行下面的程序段,a和b的值分别为:
int a=10,b=0; if (a==10)
{a=a+1;b=b+1;} else
{a=a+4;b=b+4;}
A、a=11,b=1 B、a=14,b=4 C、a=14,b=1 D、有语法错误 9. 以下程序段执行后,输出的结果为:
int i;
for (i=3; ;i=i-1); printf(“%d”,i) ;
A.1 B.2 C.3 D.死循环 10. 以下对C语言函数的有关描述中,正确的是:
A、在C语言中,调用函数时,只能把实参的值传给形参,形参的值不能传给实参 B、C函数既可以嵌套定义又可递归调用 C、函数必须有返回值,否则不能使用函数
D、C程序中有调用关系的所有函数必须放在同一个源程序文件中
共 6 页 第 1 页
① ② ③ ① ② ③ 专业 姓名 班级 学号 注:未填写姓名及学号的考生按照旷考处理 ① ② ③
二、填空题(10分,每题2分)
1.表达式3.5+1/2的计算结果是____
2. 已知 int a=5,b=6,w=1,x=2,y=3;执行语句”if(a>b&&x<=y) w=5;”后,w的值____ 3. 结构化程序设计包含____、____和____三种控制结构。 4. 函数调用语句:fun((a,b),(c,d,e));的实参个数为____
5. 设x,y,z为整型变量,初值为x=2,y=3,执行完语句z=(x>y)?x:y后,z的值是____ 三、判断题(10分,每题2分)
1.C语言表达式和表达式语句是相同的。( ) 2.关系运算符的优先级高于算术运算符。( ) 3.if(a>b) max=a; else max=b;是两条语句。( ) 4.x=(y=2)*(z=3)是一个合法的赋值表达式。( ) 5. while循环结构中,循环体至少执行一次。( ) 四、程序填空题(20分,每题10分)
1.将二维数组a的行和列元素互换,存到二维数组b中,并输出数组b。
1234a5671011121592610b37114812#include main( ){int a[3][4]= 【1】 , b[4][3] , i , j ; for ( i=0 ; i<3 ; i++ ) for (j=0 ; j<4 ; j++)
【2】 ; for ( i=0 ; i<4 ; i++ ) {for ( j=0 ; j<3 ; j++ ) printf(“%5d”,b[i][j]); printf(“\\n”);
}}
2. 以下程序实现输出x,y,z中的最大者(用max表示),请填空:
main( )
{ int x=4,y=6,z=7,max; 【1】 ;
if(max五、程序改错题(20分,每题10分)1.已知二维数组形式如下:求主对角线上元素之和。
5 9 10 2 6 23 7 4 7 3 18 21 8 5 2 9 main()
{int a[4][4]; int i,j,sum=0;
/*********found*************/ ① for(i=0;i<4;i++) ② for(j=0;j<4;j++)
共 6 页 第 2 页
① ② ③ ① ② ③ 专业 姓名 班级 学号 ③scanf(“%d”, a[i][j]);
/*********found*************/ ④ for(i=0;i<4;i++) ⑤ sum=sum+a[i][j];
⑥ printf(“SUM=%d”,sum); }
注:未填写姓名及学号的考生按照旷考处理 ① ② ③
2.下列给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值。
Y=1+1/(2×2)+1/(3×3)+1/(4×4)+„+1/(m×m) 例如,若m中的值为5,则应输出:1.463611。 源程序:
#include /********found********/ ①int fun(int m) {
②double y = 1.0; ③int i; /********found********/ ④for (i=2; i⑦main() {⑧int n = 5; /********found********/
⑨printf(\"\\nThe result is %1f\\n\}
六、编程题(20分,每题10分)
1.求1!+2!+3!+4!+5!+6!+ 7!+8!+9!+10!
2.已知数组a[10]={1,2,3,4,5,6,7,8,9,10},计算数组中所有元素为奇数的和。
共 6 页 第 3 页