C语言程序设计试题集(第1套)
一、单项选择题(每题2分,共20分) 1、以下叙述不正确的是 A) C程序由函数构成
B) 一个C程序至少包含一个main函数 C) main函数可以调用main函数
D) main函数是每个程序执行的起始点
2、C程序中能直接让机器执行的文件是 A)编辑后的.c源文件 B)通过编译的.obj文件 C)通过连接的.exe文件 D)编辑后的.bak文件
3、假设定义变量如下: int x; float y;
以下输入语句中哪个是正确的?
A)scanf(“%f%d”,&y,&x); B)scanf(“%f%d”, y, x); C)scanf(“%f%f”,&y,&x); D)scanf(“%d%d”,&y,&x);
4、已知:int a[][3]={1,2,3,4,5,6};则数组a的第一维的大小是 A)2 B)3 C)4 D)无确定值
5、.如果switch表达式是char 变量code,下面哪一个case子句是合法的。 A)case “3”: B) case ?3?: C)case 3 : D)case =3:
6、能正确表示”x的值在[1,10]和[200,210]范围内”的表达式是 A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B) (x>=1) || (x<=10) || (x>=200) || (x<=210) C) (x>=1)&&(x<=10) || (x>=200)&&(x<=210) D) (x>=1) || (x<=10)&&(x>=200) || (x<=210)
7、C语言中while和do-while 循环的主要区别是
do-while循环至少无条件执行一次,而while循环可能一次也不执行 while循环控制条件比do-while循环控制条件严格
do-while循环允许从外部转到循环体内,而while循环不允许
do-while的循环体可以是复合语句,而while循环不可以是复合语句
8、下面哪一项函数的头部是有效的? one(int a int b) int thisone(char x)
char another(int a,b) double yetanother
9、若有定义char x[ ]= \;则 A)x数组与y数组的长度相同 B)x数组长度大于y的长度 C)x 数组长度小于y数组长度 D)x数组等价于y 数组
10、二维数组的第一个元素的行下标和列下标是 A) 1,1 B)0,1 C)1,0 D) 0,0
二、填空题(每空3分,共30分)
1、如果a=4, b=3,那么,在执行语句a=b;之后,a、b的值分别是(1)
2、语句:
if(6>5)printf(“#”); printf(“$”); 输出(2)
3、for( sum=j=0; j<=10; ++j) sum += j; 循环结束后sum的值等于(3)
4、长度为10的int类型数组和长度为3 的double类型数组,哪一个数组占用的内存空间多(4)
5、字符数组a)char a[]=“one”;占多少内存字节(5)
6、如果ch?Z?,那么,表达式ch>=?A?&& ch<=?Z?的值是(6)
7、编写C语句,交换a、b的值(7)
8、为了使用库函数getchar(),必须在程序中包含命令(8)
9、设int numbers[5]={17,25,30,56,58};编写C的for语句,将数组numbers中的每个元素减去3。使用变量i跟踪下标。(9)
10、设有函数定义: 设有函数定义:
int max(int x,int y) { int z;
z=x>y?x∶y; return(z); }
语句printf(“%d”, max(max(2,3),4));输出什么?(10)
三、阅读下列程序,写出运行结果(每题5分,共20分) 1、
#include
printf(“%c\\n\}
2、
#include
printf(“x=%d,y=%d\\n”,x,y); } 3、
#include
f1=1;f2=1;
for(j=1; j<=4; j++){
printf(″%d %d ″,f1,f2); f1=f1+f2; f2=f2+f1; } } 4、
#include
{ int a[2][3] = {{1,2,3},{4,5,6}}; int b[3][2], i,j; for(i=0;i<2;i++) {
for(j=0;j<3;j++) b[j][i] = a[i][j]; }
printf(\ for(i=0;i<3;i++) {
for(j=0;j<2;j++)printf(\ printf(\ } }
四、编写程序 (共30分,每题10分)
1、从键盘上输入两个整数,比较两个数的大小,并输出较大者
2、编写程序,打印如下图案: * ** *** **** *****
3、编写程序,求一维数组中最大元素,数据自定。
参考答案:
单项选择题(每题2分,共20分)
(1)~(5)CCAAB (6)~(10)CABBD
二、填空题(每空3分,共30分) (1) a=3, b=3 (2) #$ (3) 55
(4) double类型数组 (5)4 (6) 0
(7) t=a;a=b;b=t;
(8) #include
(9)for(i=0;i<5;++i)numbers[i]-=3; (10)4
三、阅读下列程序,写出运行结果(每题5分,共20分) a x=3,y=1
1 1 2 3 5 8 13 21 array b: 1 4 2 5 3 6
四、根据题目要求编写完整程序(共30分,每题10分) 1、
#include
scanf(\if(f1>f2)printf(\else printf(\} 2、
#include
for(a=1;a<=5;++a){
for(b=1;b<=a;++b) printf(\printf(“\\n”); } 3、
#include
{ int i,a[10],sum;
for(i=0;i<10;++i)scanf(“%d”,&a[i]);
sum=a[0];
for(i=1;i<10;++i)if(a[i]>sum)sum=a[i]; printf(“sum=%d\\n”,sum); }
相关推荐: