《C语言程序设计》模拟试卷1
考试时间:100分钟考试方式:闭卷
序号
一、选择题(本题共40分,每小题2分)
1、一个C程序的执行是从()
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
2 以下选项中可以作为C语言中合法的字符串()
A.How old are you
B.”china”
C.‘hello’
D. $abc$
3、一个C语言程序是由()
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
4、以下选项中与 k=n++完全等价的表达式为()
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
5、在C语言中要求参加运算的数必须是整数的运算符是()
A. /
B. !
C. %
D.==
6、在C语言的if语句中,用作判断的表达式为()
A.关系表达式
B.逻辑表达式
C.算术表达式
D.任意表达式
7、以下关于switch语句和break语句的描述中( )是正确的
A.在Switch语句中必须使用break语句
B.break语句只能用于switch语句中
C.在switch语句中,可以根据需要使用或者不使用break语句
D.break语句是switch语句的一部分
8、有以下程序段
Int x=0;
While (k=1) k++;
While循环执行的次数是( )
A.无限次
B.有语法错误,不能执行
C.一次也不执行
D.执行1次
9、若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )
A. x=y==5
B. x=n%2.5;
C. x+n=I
D. x=5=4+1
10、若I, j 已定义为int型变量,则以下程序段中内部循环体的执行
次数是( )
For(i=5; i;i--)
For(j=0; j<4;j++) {……}
A.20
B.24
C.25
D.30
11、以下能正确定义一维数组的选项是()
A. int a[5]={0,1,2,3,4,5};
B. char a[5]={0,1,2,3,4,5};
C. char a={‘A’,’B’,’C’};
D. int a[5]=”0123”;
12、C 语言中while 和do-while循环的主要区别是()
A do-while 的循环体至少无条件执行一次
B. While的循环控制条件比do-while的循环控制条件严格
C. while 的循环体至少无条件执行一次
D. Do-while的循环体不能是复合语句
13、C语言中数组下标的下限是()
A.1
B.0
C.视具体情况
D.无固定下限
14、若变量a是int类型,并执行了语句:a=‘A'+1则正确的叙述是()
A.a的值是字符C
B.a的值是浮点型
C.不允许字符型和浮点型相加
D.a的值是字符‘A’的ASCII值加上1。
15、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为()
A.4
B.16
C.32
D.52、
16、下列标识符中不合法的是()
A. s_name
B. _e
C. fox
D. 3DS
17、下列运算符其优先级最高的是()
A. ||
B. &&
C. +
D. =
18、以下叙述中正确的是()
A. C程序中注释部分可以出现在程序中任意合适的地方
B.花括号"{"和"}"只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
19、以下选项中非法的表达式是()
A. 0<=x<100
B.i=j==0
C. (char)(65+3)
D.x+1=x+1
20、以下不能正确定义二维数组的选项是()
A.int a[2][2]={{1},{2}};
B.int a[][2]={1,2,3,4};
C.int a[2][2]={{1},2,3};
D.int a[2][]={{1,2},{3,4}};
二、阅读程序,选择一个正确的选项(本题共30分,第1、2题各9分,第3题12分,每空3分)
1、有如下程序
main()
{ int x=1,a=0,b=0;
scanf("%d",&x);
switch(x){
case 0: b++;
case 1: a++;
case 2: a++;
}
printf("a=%d,b=%d\n",a,b);
}
(1) 程序运行时,输入1,输出结果中a的值是( )
A. 1
B. 2
C. 3
D. 4
(2) 程序运行时,输入1,输出结果中b的值是( )
A.0
B. 1
C. 2
D. 3
(3) 程序运行时,输入2,输出结果中a的值是( )
A.0
B. 1
C. 2
D. 3
2、有如下程序
main()
{ int a=2,b=-1,c=1;
if(a
c=0;
else c++;
printf("%d\n",c);
}
(1)该程序的输出结果是()
A. 0
B. 1
C. 2
D.3
(2)将第3行改成“if(a>b)”该程序的输出结果是()
A. 0
B. 1
C. 2
D.3
(3)将第3行改成“if(a
A. 0
B. 1
C. 2
D.3
3、有以下程序
main()
{
int x=1, y;
scanf("%d",&y);
for (x=1;x<=100;x++)
{
if(y>=20) break;
if(y%3==1)
{
y+=3;
continue; /* 第11行 */
}
y-=5;
}
printf(“%d\n”,x);
}
(1) 程序运行时,输入21,输出结果是( )
A. 0
B. 1
C. 2
D.3
(2) 程序运行时,输入19,输出结果是( )
A. 0
B. 1
C. 2
D.3
(3) 程序运行时,输入1,输出结果是( )
A. 5
B. 6
C. 7
D.8
(4)将第11行删除后,程序运行时,输入1,输出结果是( )
A. 0
B. 1
C. 100
D.101
三、程序填空(本题共30分,每空2分)
1、以下程序的功能是:将输入的正整数按逆序输出。例如,若输入135则输出531
#include
main()
{
int s;
① ;
printf("Enter a number: ");
scanf("%d",&n);
printf("Output: ");
do
{
s=n%10;
printf("%d",s);
② ;
}
while(n!=0);
printf("\n");
}
2、用do-while循环语句实现求1+3+…+97+99,并输出结果。
#include
main()
{ int i,sum=0;
i=1 ;
do
{
sum=sum+i ;
① ;
} while( ② );
printf("%d\n",sum);
}
3、以下程序的功能是:求出数组x中各相邻两个元素的和并依次存放到a数组中,然后输出。请填空。
#include
void main()
{
int x[10],a[9],i;
for(i=0;i<10; ① )
scanf("%d",&x[i]);
for( ② ;i<10;i++)
a[i-1]=x[i]+ ③ ;
for(i=0;i<9;i++)
printf("%d ",a[i]);
printf("\n");
}
4、下面的程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空
#include
#include
main()
{
char a[]="clanguage",t,m;
int i, j , k;
① ;
printf("%d\n",k);
for(i=0;i<=k-2;i+=2)
{
m=i;
for(j=i+2;j<=k; ② )
if(a[m]>a[j]) m=j;
if(③)
{
t=a[i];
a[i]=a[m];
④ ;
}
puts(a);
printf("\n");
}
}
5、用do-while循环语句实现求1+2+…+99+100,并输出结果。#include
main()
{ int i,sum=0;
① ;
do
{
② ;
i=i+1;
} while(i<=100);
printf("%d\n",sum);
}
6、下面程序的功能是输入整数n,求n!,即求1×2×3×…×n #include
main()
{
int i,s,n;
① ;
printf("Enter n:");
scanf("%d",&n);
for(i=1; i<=n ;i++)
{
② ;
}
printf("s=%d\n",s);
}
模拟试卷1参考答案
一、1-10 ABBAC BCAAA
11-20DABDC DCADD
二、1、 B A B
2、 C A B
3、 B C D D
三、1、int n n=n/10
2、i=i+2 i<=99 (i<100|i<=100|i<101)
3、i++ i=1 x[i-1]
4、k=strlen(a)j=j+2m!=i a[m]=t
5、i=1 sum=sum+i
6、s=1s= s*i