C语言模拟试题Word文件下载.docx
《C语言模拟试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言模拟试题Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
′a′));
(A)0(B)1(C)2(D)3
9.以下程序的输出结果为()。
{inti=0;
for(;
;
)
if(i++==5)
break;
printf(〞%d\n〞,i);
(A)0(B)5(C)6(D)前3个选项都错
10.已知:
chars[4]=〞cba〞;
char*p;
执行语句列p=s;
printf(〞%c\n〞,*p+1);
后,其输出为()。
(A)c(B)b(C)a(D)d
11.运行完下列程序后,在屏幕上的内容是()。
{inta=0;
a+=a=12;
printf(〞%d\n〞,a);
}
(A)0(B)6(C)12(D)24
12.已知:
intx=1,y=2,z=0,则执行z=x>
y?
(10+x,10-x):
(20+y,20-y)后,z的值为()。
(A)11(B)9(C)18(D)22
13.若已定义x和y为double类型,则表达式x=2,y=x+10/4的值是()
(A)2(B)4(C)4.0(D)4.5
14.以下程序的输出结果是()。
intx=3,y=4;
{intx=0;
x+=y++;
printf(〞%d〞,x);
(A)3(B)4(C)5(D)6
15.在下面C语言的函数说明语句中,正确的是()。
(A)intfun(intx,inty);
(B)intfun(intx,y);
(C)intfun(x,y);
(D)intfun(intx;
inty);
16.有定义:
intx,y=10,*p=&
y;
则能使得x的值也等于10的语句是()。
(A)x=p;
(B)x=&
p;
(C)x=&
(D)x=*p;
17.有定义:
inta[5][4],(*p)[4]=a;
则*(*(p+2)+3)等价于()。
(A)a[2][0](B)a[2][1](C)a[2][2](D)a[2][3]
18.有定义:
char*s=〞\t\〞Name\\Address\〞〞;
那么strlen(s)等于()。
(A)15(B)16(C)17(D)18
19.设有定义intm=1,n=-1;
则执行语句printf(〞%d\n〞,(m--&
++n));
后的输出结果是()。
(A)-1(B)0(C)1(D)2
20.设有C语句:
structT{intn;
doublex;
}d,*p;
若要使p指向结构体变量中的成员n,正确的赋值语句是()。
(A)p=&
d.n(B)*p=d.n
(C)p=(structT*)&
d.n(D)p=(structT*)d.n
二.基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号码填入各个小题的空白处。
没空2分,共10分)
1.一个C程序无论由多少个函数组成,只能有一个主函数,其函数名是①。
2.表达式x*=x+b等价于表达式②。
3.在C语言中,③语句是一条限定转移语句,其功能是提前结束本次循环体的执行过程而直接进入下一次循环。
4.结构体数据类型仍然是一类变量的抽象形式,系统不会为数据类型分配存储空间。
要使用结构体类型数据,必须要④。
5.调用feof库函数可以判断文件内部读写位置指针是否达到文件尾,当读写位置指针到达文件尾时,该函数的返回值是:
⑤。
备选项:
(A)void(B)x=x*x+b(C)continue
(D)x=x*(x+b)(E)break(F)定义结构体成员
(G)定义结构体类型变量(H)定义联合体类型变量(I)0
(J)非0(K)main(L)goto
三.程序填空题。
(每空2分,共20分)。
1.程序的功能是:
统计输入字符串中小写字母的个数。
{charc;
intnum=0;
while((c=getchar())!
=①)
{if(c<
′a′‖c>
′z′)
continue;
②
printf(〞%d\n〞,num);
2.下面程序的功能是输出数组中的各字符串,请填空完成程序。
{char*a[]={〞abcd〞,〞12345〞,〞efghijk〞,〞67890〞};
intj=0;
③;
j++)
puts(④);
3.下面程序实现计算1+(1+2)+(1+2+3)+……+(1+2+3+……+10),请填空完善程序。
{inttotal,sum,m,n;
total=0;
for(m=1;
m<
=10;
m++)
{sum=0;
for(n=1;
⑤;
n++)
sum=sum+n;
⑥;
printf(〞total=%d\n〞,total);
4.函数fun的功能是判断一个3位整数的各位数和百位数之和是否等于其十位上的数字,是则返回〞yes!
〞,否则返回〞no!
〞,请填空完成函数。
⑦fun(intn)
{intg,s,b;
g=n%10;
s=n/10%10;
b=n/100;
if((g+b)==s)
return〞yes〞;
else
return⑧;
voidmain()
{intn;
n);
printf(〞%s\n〞,fun(n));
5.下面程序的功能是打印出整数1~1000中满足条件:
〞个位数字的立方等于其本身〞的所有数,请填空完成程序。
{intn;
for(i=1;
i<
1000;
i++)
{g=⑨;
if(⑩)
printf(〞%4d〞,i);
printf(〞\n〞);
四.阅读程序,填写结果(每小题5分,共30分)
1.下列程序的运行结果是()。
{voidadd();
inti;
for(i=0;
3;
add()
voidadd()
{staticintx=0;
x++;
2.以下程序的输出结果为()。
{inta,b,c,x;
a=b=c=0;
x=35;
if(!
a)
x--;
elseif(b)
;
if(c)
x=3;
x=4
printf(〞%d\n〞,x);
3.以下程序的输出结果为()。
{inti,j,row,colum,max;
inta[3][4]={1,2,3,4,9,8,7,6,-10,10,-5,2};
max=a[0][0];
=2;
for(j=0;
j<
=3;
if(a[i][j]>
max)
{max=a[i][j];
row=i;
colum=j;
printf(〞max=%d,row=%d,colum=%d\n〞,max,row,colum);
4.下面程序的执行结果是()。
#defineMin(x,y)(x)<
(y)?
(x):
(y)
{inta=1,b=2,c=3,d=4,t;
t=Min(a+b,c+d)*1000;
printf(〞t=%d\n〞,t);
5.下列程序的运行结果是()。
#include<
voidfun(intx)
{putchar(′0′+x%10);
if(x/10)
fun(x/10);
{intm=1234;
fun(m);
putchar(′\n′);
6.以下程序的运行结果是()。
{inta[]={1,3,5},s=1,j,*p=a;
s*=*(p+j);
printf(〞s=%d\n〞,s);
五、程序设计题。
(每小题10分,共20分)
1.编程序实现功能:
一个正整数与3的和是5的倍数,与3的差是6的倍数,求出符合此条件的最小正整数。
2.函数reverse的原型为:
voidreverse(chars[]);
其功能是将字符串s中的字符位置颠倒。
例如,字符串“abcdefg”中的字符位置颠倒后变为“gfedcba”。
编制函数reverse并用相应的主函数进行测试。
二级C语言笔试试卷(B)
1.假设有intx=11;
则表达式(x++*1/3)的值是()
(A)3(B)12(C)11(D)0
2.设有定义:
char*s=”\t\”Name\\Address\”\n”;
那么strlen(s)等于()
(A)15(B)16(C)17(D)18
3.若有语句#definef(x,y)x+y及inta=2,b=3;
则执行printf(“%d”,f(a,b)*f(a,b))后输出的值为()
(A)36(B)25(C)11(D)13
4.对于基类型相同的两个指针变量之间,不可进行的运算是()
(A)==(B)=(C)+(D)-
5.若程序中需要表示关系x≥y≥z,应使用C语言表达式为()
(A)(x>
=y)&
(y>
=z)(B)(x>
=y)AND(y>
=z)
(C)(x>
=y>
=z)(D)(x>
=z)
6.若有C语句intk=5;
floatx=1.2;
则表达式(int)(x+k)的值是()
(A)5(B)6.2(C)7(D)6
7.设有定义:
intx,*p;
能使指针变量p指向变量x的语句是()
(A)*p=&
x;
(B)p=&
(C)*p=x;
(D)p=*&
8.在执行语句if((x=y=2)>
=x&
(x=5))y*=x;
后变量x,y的值应分别为()
(A)2、2(B)5、2(C)5、10(D)执行时报错
9.以下程序的输出结果为()
{intx,n;
for(n=10,x=0;
n=0;
x++,n--)
(A)程序无限循环无输出(B)10(C)1(D)0
10.下面程序的输出结果为()
{intx=1,y=1,z;
z=1||++x&
y--;
printf(〞\n%d,%d,%d〞,x,y,z);
(A)1,1,1(B)2,0,1(C)2,1,1(D)2,0,0
11.下面程序执行后输出为()
{enumweekday{sun,mon=3,tue,wed,thu};
enumweekdayday;
day=wed;
printf(〞%d\n〞,day);
(A)5(B)6(C)4(D)编译时出错
12.下面程序执行后输出为()
{inta;
printf(〞%d\n〞,(a=3*5,a*4,a+5));
(A)65(B)20(C)15(D)10
13.以下程序的输出结果是()。
{struct
{intx,y;
}d[2]={{1,3},{2,7}};
printf(〞%d\n〞,d[0].y/d[0].x*d[1].x);
(A)0(B)1(C)3(D)6
14.下面程序执行后输出为()
intf(intn)
{if(n==1)return1;
elseif(n==2)return2;
elsereturnf(n-1)+f(n-2);
{printf(〞%d\n〞,f(4));
(A)1(B)2(C)3(D)5
15.下面程序的输出结果为()
{union
{intshortx;
//32位系统中,短整型数据占2个字节
charch[2];
}u;
u.x=100;
u.ch[0]=’a’;
u.ch[1]=0;
printf(〞%x\n〞,u.x);
(A)100(B)97(C)61(D)0
16.设有inta=0,b=5,c=2,x=0;
下面可以执行到x++的语句是()
(A)if(a)x++;
(B)if(a=b)x++;
(C)if(a>
=b)x++;
(D)if(!
(b-c))x++;
17.设有下列C语句,则下面叙述正确的选项是()
typedefstruct
charch[8];
}Stt;
(A)Stt是结构体变量名(B)Stt是结构体类型名
(C)typedefstruct是结构体类型(D)struct是结构体类型名
18.下面程序执行后输出为()
{inta=5,*p1,**p2;
p1=&
a;
p2=&
p1;
(*p1)++;
printf(〞%d\n〞,**p2);
(A)5(B)4(C)6(D)不确定
19.表达式k=(12<
10)?
4:
1?
2:
3的值为()
(A)1(B)2(C)3(D)4
20.若fp是指向某文件的指针,且已读到该文件的末尾,则C标准函数feof(fp)的返回值是()
(A)-1(B)1(C)0(D)NULL
1.表达式y/=x+a等价于表达式①。
2.在执行while循环时,其循环体②。
3.二维数组中,各数组元素的存放顺序是③。
4.在对文件进行操作的过程中,若要求文件的读写位置回到文件的开头,应当调用的标准库函数是④。
5.要将一个整数12000分别以ASCII码文件和二进制文件形式存放,各自所占的存储空间分别是⑤字节。
(A)按列存放(B)y=y/x+a(C)5和4
(D)y=1/(x+a)(E)输入函数(F)有可能一次都不被执行
(G)rewind(H)按列存放(I)y=y/(x+a)
(J)至少要被执行一次(K)fseek(L)4和5
1.下面程序的功能是:
计算a数组中奇数的个数和奇数的平均值,请填空。
#include<
stdio.h>
{inta[10]={3,2,8,7,5,6,9,10,1,4},j,k=0,s=0;
floatave;
for(j=0;
10;
if(①)
{s+=a[j];
k++;
if(k!
=0)
{ave=②;
printf("
%d,%f\n"
,k,ave);
2.下面程序的功能是:
将字符串b连接到字符串a的后面,请填空完成程序。
string.h>
{chara[20]=〞Iam〞,b[]=〞astudent.〞;
inti,j;
i=strlen(a);
for(③;
b[j]!
=’\0’;
a[i+j]=④;
a[i+j]=⑤;
puts(a);
3.下面程序的功能是:
求出100以内整数中可以被13整除的最大数,请填空完成程序。
{inti;
for(;
⑥;
i--)
if(⑦)
return0;
4.下面程序的功能是:
用冒泡法对一维数组a按升序排序,请填空完成程序。
{voidsort(inta[],intn);
inti,a[9]={2,6,1,4,3,5,9,8,7};
sort(⑧);
9;
printf(“%3d”,a[i]);
printf(“\n”);
voidsort(inta[],intn)
{inti,j,temp;
⑨;
j<
n-1-i;
if(a[j]>
⑩)
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
{intx=-3;
x+=x-=x*x;
printf(〞x=%d\n〞,x);
{voidswap(intx,int*y);
inta=5,b=10;
printf(“%d,%d\n”,a,b);
swap(a,&
b);
voidswap(intx,int*y)
{intt;
t=x;
x=*y;
*y=t;
{voidfun(char*w,intn);
charp[]=”1234567”;
fun(p,strlen(p));
puts(p);
voidfun(char*w,intn)
{chart,*s1,*s2;
s1=w;
s2=w+n-1;
while(s1<
s2)
{t=*s1;
*s1=*s2,s1++;
*s2=t,s2--;
4.以下程序的输出结果为()。
inta,b,c,d;
{voidp(inta,intb);
a=b=c=d;
printf(“%3d%3d%3d%3d\n”,a,b,c,d);
p(a,b);
printf(“%3d%3d%3d%3d\n”,a,b,c,d);
voidp(inta,intb)
{staticintc;
a++,b++;
c-=10,d+=5;
if(a<
2)
{inta[3][2]={1,2,3,4,5,6},*p[3],i;
p[i]=a[i];
for(i=0;
printf(〞%d〞