C程序设计模拟试卷
一、单项选择题(每题2分,共40分):
1.以下叙述中正确的是________。
A)用C程序实现的算法可以既没有输入也没有输出。 B)用C程序实现的算法可以没有输入但必须有输出。 C)用C程序实现的算法可以没有输出但必须有输入。 D)用C程序实现的算法必须要有输入和输出操作。
2.以下4组用户定义的标识符中,全部合法的一组是________。
A)_main B)If C)txt D)int
eneclude -main REAL k_2 sin turbo 3COM _001
3.设变量定义为“int a, b;”,执行语句:scanf(\b=%d\&b);若想从键盘上输入数据,使变量a和b的值都是10,则正确的输入是________。
A)10 10 B)10, 10 C)a=10 b=10 D)a=10, b=10 4.有以下程序:
#include
{ int x=102,y=012;
printf(“-,-\\n”,x,y);}
执行后输出的结果是________。
A)10,01 B)02,12 C)102,10 D)02,10 5.有以下程序:
#include
{ int a=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf(“%d”,d++ +1); else
printf(“%d”,++d +1);
printf(“%d\\n”,d);
}
程序运行后的输出结果是_____。
A)44 B)43 C)3 D)2 6.有以下程序:
#include
for(i=0;i<3;i++)
switch(i)
{ case 0: printf(“%d”,i);
1
case 2: printf(“%d”,i); default: printf(“%d”,i); }
}
程序运行后输出的结果是________。
A)02211 B)021021 C)000122
7.有以下程序:
#include
{ int x[3][2]={0},i;
for(i=0;i<3;i++) scanf(“%d”,x[i]);
D)012
printf(\
若运行时输入:2 4 6<回车>,则输出的结果是________。
A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6
8.有以下程序:
#include
{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
printf(\
程序运行后输出的结果是________。
A)16 B)10 C)8
D)6
9.对于说明和语句:int c[4][5],(*p)[5];p=c;,以下能正确引用c数组元素的是
________。
A)p+1 B)*(p+3) C)*(p+1)+3 D)*(p[0]+3) 10.设的定义形式为:
void fun(char ch,float x) {……}
则以下对函数fun的调用语句中,正确的是________。
A)fun(“abc”,3.0) B)t=fun(?D?,16.5) C)fun(?65?,2.8) D)fun(32,32) 11.有以下程序:
#include
int f(int *a)
{ return (*a)++; }
void main() { int s=0;
{ int a=5; s+=f(&a); } s+=f(&a);
printf(\
执行后输出的结果是 。
A)10 B)9 C)7 D)8
12.有以下程序: #include
2
for(i=0;i<7;i++) if(p[i][0]=='T') n++; return n; }
void main()
{ char str[][10]={\ printf(\
程序运行后的输出结果是________。
A)1 B)2 C)3 D)0
13.有以下程序:
#include
{ char p[]={?a?,?b?,?c?},q[10]={?a?,?b?,?c?}; printf(\ %d\\n\
以下叙述中正确的是________。
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长
度都是3。
B)由于p数组没有字符结束符,试试不能确定,但q数组中字符长度为3。 C)由于q数组没有字符结束符,试试不能确定,但p数组中字符长度为3。 D)由于p和q数组都没有字符结束符,故长度都不能确定。 14. 有以下程序:
#include
#define F(int x) P*x*x void main()
{ printf(\
程序运行的输出结果是________。
A)192 B)29 C)25 D)编译出错
15.设有定义:int n1=0,n2,*p=&n2,*p=&n1;,以下赋值语句中与n2=n1;等价的是________。
A) *p=*q B) p=q C) *p=&n1 D) p=*q
16.以下叙述中正确的是_________。
A)全局变量的作用域一定比局部变量的作用域范围大。
B)静态(static)类型变量的生存期贯穿于整个程序的运行期间。 C)函数的形参都属于全局变量。
D)未在定义的语句中赋初值的auto变量和static变量的初值都是随机值。
17.设有以下语句:
typedef struct S
{ int g; char h;} T;
则下面叙述中正确的是_________。
A)可以用T定义结构体变量 B)可以用S定义结构体变量
3
C)S是struct类型的变量 D)T是struct S类型的变量
18.有以下程序:
struct s
{ int x,y;} data[2]={10,100,20,200}; void main()
{ struct s *p=data;
printf(“%d\\n”,++(p->x)); }
程序运行后输出结果是( )
A) 10 B) 11 C) 20 D) 21 19.有以下程序:
void main()
{ char *P[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%d\\n”,strlen(p[4])); }
执行后输出的结果是( )
A) 2 B) 3 C) 4 D) 5
20.程序运行输出了错误的结果,可以排除下列的因素是________。
A)算法错误 B)运行时输入数据错误
C)未通过编译
D)系统资源配置不当
二、程序阅读题(每题3分,共30分):
1.下列程序的运行结果是________。 #include
{ char c; int n=100; float f=10; double x; x=f*=n/=(c=50);
printf(\ %f\\n\2.下列程序的功能是________。 #include
scanf(\ if('0'<=c&&c<='9') { c=c-'0'; printf(\ }
else printf(\ }
3.下列程序的功能是________。 #include
4

