文档库

最新最全的文档下载
当前位置:文档库 > C语言模拟试题及答案(二)

C语言模拟试题及答案(二)

C语言模拟试题及答案(二)_在线测试_课程资源_C语言程序设计

课程首页 - 课程资源 - 在线测试


2010年1月10日 浏览数:50


C语言模拟试题及答案(二)


一、单项选择题
1.不是C语言基本数据类型的是( )。
A) 指针类型 B) 整型 C) 无符号长整型 D) 单精度型
2.正确的字符串常量是( )。
A) "abcd" B) {abcd} C) {"abcd"}
D) abcd
3.在C语言中,只能用于整型数据操作的运算符是( )。
A) ! B) < C) /
D) %
4.下列有关函数的说法中错误的是( )。
A) C语言中的函数只具有static和extern两种类型
B) C语言中允许函数的递归调用
C) 调用函数时,C语言要求实参与形参的个数,类型完全一致
D) C语言函数的缺省数据类型是空类型(void型)
5.若有以下说明和语句,请选出那个是对a数组元素的正确引用( )。
int a[4][5],(*p)[5];
p=a;
A) p+1 B) *(p+3) C) *(p+1)+3
D) *(*p+2)
6.下面各语句行中,能正确进行赋字符串操作的语句行是( )。
A) char st[4][5]={"ABCDE"}; B) char
s[5]={ˊAˊ,ˊBˊ,ˊCˊ,ˊDˊ,ˊEˊ};
C) char *s;s=" ABCDE"; D) char *s;
scanf("%s",s);
7.以下程序,如从键盘上输入-1,则程序的输出是( )。
#include
main()
{ int x,y;
printf("Enter an integer(x):");
scanf("%d",&x);
if(x++<0) y=-1;
else if(x==0) y=0;
else y=1;
printf("%d",y);
}
A) -1 B) 0 C) 1
D) 不确定的值
8.下面程序的输出结果是( )。
#include
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0:a++;break;
c

ase 1:b++;break;
}
case 2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A) a=2,b=1 B) a=1,b=1 C) a=1,b=0
D) a=2,b=2
9.下面有关for语句的说法中,正确的是( )。
A) 任何情况下,for语句中的三个表达式一个都不能少
B) for语句中的循环体至少会被执行一次
C) for语句只能用于循环次数已经确定的情况下
D) for语句中的循环体可以是复合语句
10.下面程序的输出结果是( )。
#include
main()
{ int n[2],i,j,k;
for(i=0;i<2;i++) n[i]=0;
k=2;
for(i=0;ifor(j=0;jprintf("%d\n",n[k]);
}
A) 不确定的值 B) 3 C) 2 D)
1
二、填充题
1.能够构成数组的各个元素必须具有相同的_______。
2.能正确表示0<=x<=10的关系表达式是_______。
3.表达式!2+1>2&&15%5+2的值是_______。
4.下面字符串的长度为_______。
char *s="\xab\107\\A\""
5.有以下运算符:+,&,<,!,优先级最高的是_______。
6.若有以下定义char ch[10];则数组ch元素下标的上限为_______,下限为_______。
7.C语言的数组名是一个_______常量,不能对它进行加减和赋值等运算。
8.有以下函数调用语句,请问函数fun1到底有_______个参数。
fun1(x,(y,z),10,fun2((x-1,y-1)))
9.函数调用时,若形参和实参均为数组,则其传递方式是_______。
10.设有char
a,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第2位与第8位(右起为第1位),则b的二进制数据应该为_______。
三、判断题
1.( )一个int型与一个double型数据进行混合运算时,其结果是double型。
2.( )语句int pt中的*pt是指针变量名。
3.( )putchar()函数可以输出一个字符串。
4.( )主函数和其它函数可以相互调用。
5.( )C程序的执行总是从第一个定义的函数开始。
6.( )

puts和gets函数只能输入或输出一个字符串。
7.( )for(;;)语句相当于while(1)语句。
8.( )C程序中各函数之间既允许直接递归调用也允许间接递归调用。
9.( )函数必须有返回值,否则不能使用函数。
10.( )静态外部变量既可以在文本文件中引用,也可以在其它文件引用。
四、程序分析题
1.运行以下程序片段,输出的结果是:
#include
main()
{ int a=1,b=2;
printf("%d,",func(a,b));
printf("%d",func(a,b));
}
func(int x,y)
{ static int a=0,b=1;
a=b*2;
b=a+x+y;
return(b);
}
2.下面程序的输出结果是:
#define MAX 5
int a[MAX],k;
main()
{ fun1();fun3();
fun2();fun3();
printf("\n");
}
fun1()
{ for(k=0;kfun2()
{ int a[MAX],k;
for(k=0;k<5;k++) a[k]=k;
}
fun3()
{ int k;
for(k=0;k}
3.请写出以下程序的输出结果:
#iclude
main()
{ int a[]={1,2,3,4},i;
int x=0;
for(i=0;i<4;i++)
{ sub(a,x);printf("%d",x);
}
printf("\n");
}
sub(s,x)
int *s,x;
{ static int t=3;
x=s[t];t--;
return(x);
}
4.请写出以下程序的输出结果:
#include
fun(s,n1,n2)
int *s,n1,n2;
{ int i,j,t;
i=n1;j=n2;
while(i{ t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;
i++;j--;
}
}
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;
fun(p,0,3);fun(p,4,9);fun(p,0,9);

for(i=0;i<10;i++) printf("%d",*(a+i));
printf("\n");
}
五、程序填空题
1.函数judge的功能是判断方阵a是否关于主对角线对称,若对称则返回1,否则返回0.函数参数的意义是:n为矩阵的阶数,a为存储矩阵元素数据的数组名.请在程序中下划线处填上合适内容。
judge(int n,a[][]);
{ int i,j;
for(i=0;ifor(j=0;jif _______
return 0;
return 1;
}
2.以下程序的功能是:从键盘上输入10个数值,存储在数组a中,调用函数findmax求数组中的最大值,输出最大值。请在下划线处填上合适的语句,完成函数功能。
#include
main()
{ int a[10],i,j;
for(i=0;i<10;++i)
scanf("%d",&a[i]);
findmax(a,10, &j);
printf("%d",a[j]);
}
findmax(s,t,k)
int *s,t,*k;
{ int p;
for(p=0,*k=p;pif (s[p]>s[*k]) ____;
}
3.现有一等差数列,已知第一项a=1,公差b=4,下面程序的功能是求满足前n项之和小于100的最大n,请填空完成该程序。
#include
main()
{ int a=1,b=4,sum=1,n=1;
while(_____)
{ a=a+b;
sum=sum+a;
n++;
}
printf("%d",n);
}
4.以下程序由终端键盘输入一个文件名,然后把从终端输入的字符依次存放到该文件中,用#作为结束输入的标志,请填空。
#include
main()
{ FILE *fp;
char ch,fname[10];
printf("Input the name of file\n");
gets(fname);
if((fp=______)==NULL)
{ printf("Cannot open\n");exit(0);}
printf("Enter data\n");
while ((ch=getchar( ))!=ˊ#ˊ)
fputc(ch,fp);
fclose(fp);
}


《C程序设计》参考答案
一、单项选择题
1.A 2.A 3.D 4.D 5.B 6.C 7.A

8.A 9.B
10.A
二、填充题
1.数据类型 2.x>=0&&x<=10
3.2 4.5
5.& 6.9 0
7.指针 8.4
9.地址传送方式 10.10000010
三、判断题
1.√ 2.× 3.× 4.× 5.× 6.√ 7.√ 8.√ 9.× 10.√
四、程序分析题
1.5,13
2.024*******
3.0 0 0 0
4.5,6,7,8,9,0,1,2,3,4
五、程序填充题
1.a[i][j]==a[j][i]
2.*k=p
3.sum<100
4.fopen(fname,"wb")