资料简介
2套含答案《C语言程序设计》模拟试题:
试题一:
一、 选择题(每小题2分,共20题)
1、下列变量说明中,正确的是()
a、char a b c ; b、char a; b; c;
c、int x;z; d、int x,z;
2、设x=2.5,y=4.7,a=7,算术表达式x+a%3*(int)(x+y)%2/4的值为()
a、2.5 b、7
c、4.7 d、2
3、用语句scanf(“%c%c%c”,&c1,&c2,&c3)输入a└┘b└┘c时,变量c1,c2,c3的值分别为()
A.‘a’,’b’,’c’ B.‘a’,’b’,’└┘’
C ‘a’,’└┘’,’b’ D.‘a’,‘└┘’,’c’
4、 putchar函数可以向终端输出一个()
A. 整型变量表达式值 B. 实型变量值
C. 字符串 D. 字符或字符型变量值
5、 下面不正确的if语句形式是()
a:if(x﹥y);
b:if(x==y) x+=y;
c:if(x!=y) scanf(“%d”,a)
else scanf(“%d”,b);
d:if(x﹤y) {x++; y++;}
6、 已知:int x=10,y=20,z=30;以下语句执行后x、y、z的值是()
if(x﹥y) z=x; x=y; y=z;
a:x=10 y=20 z=30
b:x=20 y=30 z=30
c:x=20 y=30 z=10
d:x=20 y=30 z=20
7、 设有程序段
int k=10;
while(k=0) k=k-1;
则下面描述中正确的是()。
a:循环共执行10次 b:循环是无限循环
c:循环体语句一次也不执行 d:循环体语句执行一次
8、 下面有关for循环的正确描述为()。
a:for循环只能用于循环次数已经确定的情况。
b:for循环是先执行循环体语句,再判断表达式。
c:在for循环中,不能用break语句跳出循环体。
d:在for循环的循环体语句中,可以包含多条语句,但必须用大括弧括起来。
9、下面关于函数参数传递正确的是()
a:只能传递地址
b:只能传递数据
c:传值,即为传递地址和数据
d:双向传递
10、void返回类型函数正确的描述是()
a:返回确定的值
b:返回不确定的值
c:返回值
d:不返回值、
11、 下面说法中正确的是()
a:C语言程序总是从第一个定义的函数开始执行的。
b:在C语言程序中,要调用的函数必须在main()函数中定义。
c:C语言程序总是从main()函数开始执行的。
d:C语言程序中的main()函数必须放在程序的开始部分。
12、在C语言中,引用数组元素时,其下标的类型是()。
a:整型常量 b:整型表达式
c:整型常量或者整型表达式样 d:没有限制
13、下面正确的定义是()。
a:int t[10]; b:int t [10]
c:int t[]; d:int [10];
14、 下面正确的初始化语句是()。
a:a[]=(1,2,2); b:s[]={2;3;8};
c:b[5]={1}; d:b[3]=[1,2,3]
15、 已有定义,“int a[4][6];”,下面对二维数组正确的引用是()
a:a[2](5) b:a[4]][6]
c:a [3][4] d:a[0][1+2]
16、 下面不正确的语句是()。
a:char c[6]={“china”};
b:char c[6]=“china”;
c:char c[6]={‘c’, ‘h’, ‘i’, ‘n’ ,‘a’ };
d:char c[6]={“chease”};
17、函数调用时,若用数组名作实参,则传递给形参的是()
a:数组元素的个数 b:数组的起始地址
c:数组第一个元素的值 d:数组全部元素的值
18、若a是一维数组名,p是指针变量,是下列语句中非法的是()
a:p=a; b:p++ c:a++ d:p=&a[0]
19、 若有以下定义:
int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;
则值为3的是()
a:p+=2;*(p++); b:p+=2;*++p; c:p+=3;*p++; d:p+=2;++*p;
20、 下列程序执行后输出的结果是( )
#include﹤stdio.h﹥
#define MA(x) x*(x-1)
void main()
{
int a=1,b=2;
printf(“%d\n”,MA(1+a+b));
}
试题一答案:
一.选择题
1-5: d a d b c
6-10: b c a c d
11-15:c c a c c
16-20:d b c a b
二.填空题
1:整
2:0
3: ;
4:前者无条件地执行一次循环体,再进行条件判断,后者先进行条件判断,在根据判断情况决定是否执行循环体
5:前者占用的内存空间较后者多一个
三.程序调试
#include
int div(int m,int n); //对函数的声明
int mul(int m,int n); //对函数的声明
void main() //主函数
{
int a,b,c,mul1,mul2,div1,div2
试题二
一、选择题(每小题2分,共20道)
1、下列数据中为字符串常量的是()
a、’a’ b、“house”
c、I love china d、‘$abc’
2、经过以下语句定义后,表达式z+=x>y?++x:++y的值是()
int x=1,y=2,z=3;
a、2 b、3
c、6 d、5
3、以下说法正确的是()
A.输入项可以为一个实型常量,如:scanf(“%f”,3.5);
B.只有格式控制而没有输入项时,也能够进行正确输入,如:
scanf(“a=%d,b=%d”);
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如:
scanf(“%4.2f”,&f);
D.当输入数据时,必须指明变量的地址,如:scanf(“%f”,&f);
4、已知字符‘a’的ASCⅡ码为97,则下述程序的输出为()
char ch=’a’;
int k=12;
printf(“%x,%o,”,ch,ch,k);
printf(“k=%%d”,k);
A.因变量类型与格式描述符不匹配,输出不定值
B.输出项与描述项个数不符,输出为0值或不定值
C.输出为61,141,k=%d
D.输出为61,141,k=%12
5、程序段中正确的是()
a:int =0,y=10; b: int x=0,y;
switch(x) switch(x)
{ {
case y: x++; case x>0: y=1;
case y+2: x=10; case x==0: y=0;
case y-1: x=2; case x<0: y=-1;
} }
c:int x=10,z; d: int x=0,y;
switch(x) switch(x)
{ {
case 12: z=2; case 3:
case y+1: y=10; case -1: y=0;
case y-8: y=2; case 2: y=-1;
} }
6、已知:int x=10,y=20,z=30;以下语句执行后x、y、z的值是()
if(x>y) z=x; x=y; y=z;
试题二答案
一.选择题
1-5: b a d d d
6-10: b b d d a
11-15:d b d c a
16-20:c b a d a
二.填空题
1:16;
2:1.0;
3:交换两个变量的值;
4:前者结束整个循环的执行,后者结束本次循环的执行
5:前者没有分号,后者有
三.程序调试
#include
#include
int yn(int b)
{
int k,flag;
flag=1;
for(k=2;k
if(b%k==0) flag=0;
return flag;