院、系领导
审批并签名
A 卷
广州大学 2011-2012 学年第
C 语言设计
2 学期考试卷
答案与评分标准
一、选择题(每题 2 分,共 30 分) 1.
C语言程序的 3 种基本结构是顺序结构、选择结构和 A、嵌套
B、 递归
C、循环
( C ) 结构
D、转移
2. 下列叙述中错误的是( A、 C语句必须以分号结束
D ) B、复合语句在语法上被看做一条语句 C、赋值表达式末尾加分号就构成赋值语句 D、空语句出现在任何位置都不会影响程序运行
3. C语言中,运算对象必须是整型数的运算符是( B ) A、/
B、%
C、\\
D、%和/
4. 变 量 a 、 b 、 c 已 被 定 义 为
D
int 型 , 有 输 入 语 句
“scanf( “a=%d,b=%d,c=%d”,&a,&b,&c); ” , 为使变量 a 的值为 1, b 的值为 3, c 的值为 2,从键盘输入数据的正确形式是( A、 132
C、 a=1 b=3 c=2
B、 1,3,2
) D、 a=1,b=3,c=2
5. 执行下列两条语句 “ int c1=1,c2=2,c3;c3=1.0/c2*c1;”后变量 c3 的值是( A ) A、 0
B、 0.5
C、 1
D、2
6. 若文本文件 f1.txt ( B ) void main(void) { FILE *fp1;
中原有内容为 good,则运行下列程序后文件 f1.txt 中的内容是
fp1=fopen( “f1.txt ” , “ w”) ; fprintf(fp1, fclose(fp1); }
共 8 页(第 1页) “ abc ” );
A、 goodabc B 、 abc C 、abcd D 、 abcgood
7. 若有以下定义“ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; ( C
) B、 *(p+6) C
、 *p+=5
A、 *p+6
”, 则值为 6 的表达式是
D、 p+5
8. 设有数组定义 char array []= ” China ”;, 则数组 array
所占的空间是
( C ) A、 4 个字节
B、 5 个字节
C、 6 个字节
D、 7 个字节
9. 执行下面的程序后变量 a 的值是( A ) void main() { int a,b;
for(a=1,b=1;a<=100;a++) { if(b>10)break;
if(b%3==1) { b+=3;continue;} b-=3; } } A、5
B、 6
C、7
D、8
10. 如下程序 void main(void ) { int x=1 , a=0, b=0; switch(x)
{ case 0 : b++; case 1 : a++;
case 2 : a++; b++; }
printf(\, b=%d\\n\, a, b) ; }
该程序的输出结果是( A
) A、 a=2, b=1
B、 a=1, b=1
C、 a=1, b=0
D、 a=2, b=2
11. 设 x 和 y 均为 int 型变量,则语句“ x+=y ; y=x-y ; x-=y ”的功能是( DA 、把 x 和 y 按从大到小排列 B、把 x 和 y 按从小到大排列 C、无确定结果
D、交换机 x 和 y 中的值
12. 设有如下变量定义“ int k=7,x=12; ”,则能使值为 3 的表达式是( C )A 、 x%=(k%=5)
B 、 x%=(k-k%5)
C、 (x%=k)-(k%=5)
D、 x%=k-k%5
共 8 页(第 2页)
)
13. 以下函数的功能是(
A ) ’\\0’){p1++;p2++;}}
void fun(char *p2,char *p1){ while ((*p2=*p1)!= A 、将 p1 所指字符串复制到时
p2 所指内存空间
B、将 p1 所指字符串的地址赋给指针
p2
C、对 p1 和 p2 两个指针所指字符串进行比较 D、检查 p1 和 p2 两个指针所指字符串是否有
’\\0’
14. 以下叙述中不正确的是(
B ) A 、 实参可以是常量、变量或表达式 B、形参可以是常量、变量或表达式
C、实参可以为任意类型
D、 形参应与其对应的实参类型一致
15. 下列 4 行代码定义了求两数之和的函数,其中,行(
A 、 void add (float a , float b) B、 {
float c;
C、 c=a+b;
D、 return c; }
评分说明: D 和 A 答案等价,两个选项均可得 2 分; 二、填空题(每空 2 分,共 20 分) 1、 下面程序可求出矩阵 a 的主对角线上的元素之和,请填空。main()
{int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if( )sum=sum+ ; i==j a[i][j] printf(\
}
2、 下列函数的功能是判断形参 a 是否为素数,若是函数返回int primt(int a) {int i;
for (i=2;i<=a/2;i++)
if(a%i==0)_____________; return 0; ___________________; } return 1;
各 2 分;
共 8 页(第 3页) A/D )是错误的。
; 各 2 分;,否则返回 0,请填空。
1