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)无确定值
switch语句表示范围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[ ]= "12345"; char y[ ]={ '1', '2', '3', '4', '5'};则
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<‘A’或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<stdio.h>
void main()
{ char a=’A’;
printf(“%c\n",a+ 32);
}
2、
#include<stdio.h>
void main()
{ int x=3,y;
if(x<0)y=-1;
else if(x>0)y=1;
else y=0;
printf(“x=%d,y=%d\n”,x,y);
}
3、
#include <stdio.h>
void main()
void main()
{ int f1,f2;
int j;
f1=1;f2=1;
for(j=1; j<=4; j++){
int j;
f1=1;f2=1;
for(j=1; j<=4; j++){
printf(″%d %d ″,f1,f2);
f1=f1+f2;
f2=f2+f1;
f2=f2+f1;
}
}
4、
#include <stdio.h>
void main()
{ 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("array b:\n");
for(i=0;i<3;i++) {
for(j=0;j<2;j++)printf("%5d",b[i][j]);
printf("\n");
}
}
四、编写程序 (共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<stdio.h>
(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<stdio.h>
void main()
{ float f1,f2,t;
scanf("%f%f",&f1,&f2);
if(f1>f2)printf("%f\n",f1);
else printf("%f\n",f2);
}
2、
#include<stdio.h>
void main()
{ int a,b;
for(a=1;a<=5;++a){
for(b=1;b<=a;++b) printf("*");
printf(“\n”);
}
3、
#include<stdio.h>
void main()
{ 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);
}
C语言程序设计试题集(第2套)
单项选择题(30分,每题2分)
1.用C语言编写的代码程序______。
A、可立即执行 B、是一个源程序
C、经过编译即可执行 D、经过编译解释才能执行
2. C语言中用于结构化程序设计的三种基本结构是______。
A、 顺序结构、选择结构、循环结构 B、 if、switch、break
C、 for、while、do-while D、 if、for、continue
3. 以下选项中合法的实型常数是______。
A、5E2.0 B、 E-3 C、 .2E0 D、 1.3E
4. 假定x和y为 double型,则表达式x=2,y=x+3/2的值是______。
A、 3.500000 B、 3 C、 2.000000 D、 3.000000
5. ch是字符型变量,下面不正确的赋值语句是______。
A、ch = 65; B、 ch="a"; C、 ch ='\ n'; D、 ch= 9+ '0';
6. 下列有关C语言程序书写格式的说法哪个是错误的?
A、 C程序的书写格式比较自由,一个语句可以占多行,一行也可以有多个语句。
B、 C语句必须要有分号。
C、 C语言程序的标识符必须使用小写字母。
D、 用{ } 括起来的部分,通常表示了程序的某一层次结构,称为块。
7.下面程序段所表示的数学函数关系是______。
x= -1;
if (a!=0)
if (a>0) x=1;
else x=0;
-1 (a<0) 1 (a<0)
A、x= 0 (a=0) B、x= -1 (a=0)
1 (a>0) 0 (a>0)
0 (a<0) -1 (a<0)
C、x= -1 (a=0) D、x= 1 (a=0)
1 (a>0) 0 (a>0)
8. 以下关于do-while循环的不正确描述是______。
A) do-while的循环体至少执行一次
B) do-while的循环体可以是复合语句
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论