________ …… 《C语言程序设计》试卷(B)
题号 一 二 三 四 五 总分 8. 以下说法不正确的是( )
A) 在不同函数中可以使用相同名字的变量 B) 形式参数是局部变量
C) 函数值的默认类型为void D) 函数中可以没有return语句 9. 若有说明:int *p,m=5,n;以下正确的程序段是`( )
A) p=&n;scanf(“%d”,&p); B) p=&n; scanf(“%d”,*p); ___…__…__线号 ..学…__…__…__…__…__…__…__…_名…姓…_…__…__…__封_..__…__…__…_级…班…_…__…__…__…__…__…__密_ _.业…专…__…__…__…__…_______系 分数 核分人签字 得分 评卷人 复查人
一、选择题(每小题2分,共30分)
1.若x,i,j,k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值是( A) 4 B) 16 C)32 D) 52 2.已有定义: int x=6,y=6;则表达式x/=y+2的值为( )
A) 0.75 B) 0 C)2 D)不确定 3. 下面选项中正确的一组C语言关键字是( )
A)auto,bytes,include B)switch, if,extern
C)static,type,define D)#include,integer,Double 4.以下能对二维数组a进行正确初始化的语句是( )
A)int a[2][]={{1,0,1},{5,2,3}} B)int a[][3]={{1,2,3},{4,5,6}} C) int a[2][4]={{1,2,3},{4,5},{6}} D) int a[][3]={{1,0,1},{},{1,1}} 5. 以下for循环的执行次数是( )
for(x=0,y=0;(y=10)&&(x<4);x++);
A)无限循环 B)循环次数不定 C) 3 D) 4 6. 运行以下程序后输出( )
A)**** B)#### C)****#### D)####**** main() { int n=3;
if(n) printf(“****”); printf(“####\\n”); }
7. 已有定义:char a[]=”xyz”,b[]={‘x’,’y’,’z’}; 则叙述正确的是(A)数组a和b的长度相同 B)a数组的长度小于b数组 C) a数组的长度大于b数组 D)以上说法都不对 2005级《C程序设计》试卷A 共6页 第 1 页 )
C) scanf(“%d”,&n); *p=n; D) p=&n; *p=m; 10. C语言规定,函数返回值的类型是由( )
A) 在定义函数时所指定的函数类型所决定 B) 调用函数时主调函数的类型所决定 C)调用函数时临时决定 D) return语句中表达式的类型所决定. 11. 关于函数,叙述正确的是( )
A)函数定义与函数声明都出现的主调函数中 B)对被调用函数的声明有时可以省去
C)任何情况下都必须在主调函数中写出函数原型 D)函数调用时可以将形参传回实参 12.下列叙述正确的是 ( )
A)if总是和else成对出现
B)else总是与它上面最近但未曾配对的if配对
C)在switch语句中必须使用default D)在switch语句中,case与break语句成对出现
13.设有定义: int a[3][2],i,j;则对a 数组元素值a[i][j]的正确引用为( )
A)*(a[i]+j) B)a+i C)*(a+j) D)*(a+i)+j 14. 若有宏定义:#define MOD(x,y) x%y 则执行以下语句后的输出为( ) int z,a=15,b=100;
z=MOD(b,a); printf(“%d\\n”,z++);
A)11 B)10 C)6 D)宏定义不合法 15. 以下程序的输出结果是( )
A) 2,7,5,7,6,7 B)7,6,7,7,6,7 C) 7,6,7,2,7,5 D)无定值 fun(int a,int b) { int x=7;
printf(“%d,%d,%d,”,a,b,x);} main()
{ int a=2,b=7,x=5; fun(b,6);
printf(“%d,%d,%d\\n”,a,b,x); }
2005级《C程序设计》试卷A 共6页 第 2 页
) ..……………… …__…__…__…__…__…__…__…_号…学…_…__…__…__…__…__…__…__线名 ..姓…__…__…__…__…__…__…__…_级…班…_封_..__…__…__…__…__…__…_业…专…_…__密_ _.__…__…__…__…__…系……………...…… …得分 评卷人 复查人
二、填空题(每空2分,共20分)
1.程序设计语言中,为解决一个问题而采取的方法和步骤称为 . 2. 当a=3,b=2,c=1时,表达式f=a>b>c的值为 。 3. C语言中唯一的一个三目运算符是 。
4.已知int x=10,y=20,z=30;则以下语句执行后x,y,z的值为: if (x>y) z=x; x=y; y=z;
5. 循环语句中break语句的作用是 。
6. 有以下语句段 int n1=10,n2=20;printf(“ , ”,n1,n2);
填空使得输出屏幕上显示为:n1=10,n2=20.
7. 若定义char string[]="I love china",则该数组的长度是 。 8. 下面程序段的功能是从键盘输入的字符中统计小写字母的个数,用换行符结束循
环,请填空。 #include {int n=0,c; c=getchar( ); while( ) { if( ) n++; c=getchar( );} printf(“%d\\n”,n) } 得分 评卷人 复查人 三、判断题:(正确的划√错误的划×,每小题1分,共10分,) 1. C语言是一种结构化的程序设计语言。 ( ) 2. 函数类型就是函数返回值的类型,与函数定义无关。 ( ) 3. 一个分号就可以构成一个完整的C语言语句。 ( ) 4. C语言中用TRUE表示真,用FALSE表示假。 ( ) 5. 宏替换与函数都会占用运行时间。 ( ) 6. 一个数组中的各个元素必须是相同的数据类型。 ( ) 7. C语言中的函数参数可以在形参与实参之间相互传递。 ( ) 8. 递归调用是指在一个函数中调用主函数。 ( ) 9. C语言中函数既可以嵌套定义又可以嵌套调用。 ( ) 10. int (*p)[3];表示定义了一个指针变量p,它指向有3个元素的一维数组。 ( ) 2005级《C程序设计》试卷A 共6页 第 3 页 得分 评卷人 复查人 四、改错题:不增行、删行、不改变程序结构,用下划线指 出错误之处,并在右面空白处加以改正( 每行最多一个错误指出一处错误给1分,改正一个给1分,共16分) 1.以下程序对10个整数按相反顺序输出 include {void inv(int x[ ],int n) int i,a[10]={3,7,9,11,0,6,7,5,4,2}; printf(\"The original array:\\n\"); for(i=0;i<10;i++) printf(\"%d,\ printf(\"\\n\"); inv(a[0],10); printf(\"The array has been inverted:\\n\"); for(i=0;i<10;i++) printf(\"%d,\ printf(\"\\n\") } inv(int x[ ],int n) {int temp,i,j,m=(n-1)/2; for(i=0;i } } 得分 评卷人 复查人 五、编程题:(每小题8分,共24分) 1. 编程求200到300之间的素数,并按每行3个数的格式输出。 2005级《C程序设计》试卷A 共6页 第 4 页 …………………….. _ 3. 从键盘上输入10个整数,使用选择法进行由小到大排序。 (要求使用函数调用的方式,形参用指针变量) ___…__…__…__…__…__…_号…学…_…__…__…__…__…__…__…__线名 ..姓…__…__…__…__…__…__…__…_级…班…_封_..__…__…__…__…__…__…_业…专…_…__密_ _.__…__…__…__…__…系……………...…… … 2. 编程:给一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角 各元素。 2005级《C程序设计》试卷A 共6页 第 5 页 2005级《C程序设计》试卷A 共6页 第 6 页 因篇幅问题不能全部显示,请点此查看更多更全内容