C语言模拟试题.docx

上传人:b****6 文档编号:6555703 上传时间:2023-01-07 格式:DOCX 页数:22 大小:29.64KB
下载 相关 举报
C语言模拟试题.docx_第1页
第1页 / 共22页
C语言模拟试题.docx_第2页
第2页 / 共22页
C语言模拟试题.docx_第3页
第3页 / 共22页
C语言模拟试题.docx_第4页
第4页 / 共22页
C语言模拟试题.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言模拟试题.docx

《C语言模拟试题.docx》由会员分享,可在线阅读,更多相关《C语言模拟试题.docx(22页珍藏版)》请在冰豆网上搜索。

C语言模拟试题.docx

C语言模拟试题

期末二级C语言笔试试卷(A)

注意事项:

1.一题答案填涂在答题卡上

2.二、三、四、五题答案做在答题纸上

一.单项选择题。

(每小题1分,共20分)

1.C程序的源程序由预处理命令和()组成。

(A)函数(B)语句(C)保留字(D)标始符

2.下面程序段中,与if(x%2)中的x%2所表示条件等价的是()。

scanf(〞%d〞,&x);

(A)x%2==0(B)x%2!

=1(C)x%2!

=0(D)x%2==1

3.执行下面C语言序列后,变量b的值是()。

Inta,b,c;a=b=c=1;++a||++b&&++c;

(A)错误(B)0(C)2(D)1

4.设有C语句inta[3][4];,则每次移动过a数组一行元素的指针变量定义形式是()。

(A)int*p;(B)int**p;(C)int(*p)[4];(D)int*p[4];

5.设有整型变量a,实型变量f,双精度型变量x,则表达式10+′b′+x*f值的类型为()。

(A)int(B)float(C)double(D)不能确定

6.C语言中规定,函数调用中用简单变量做实参时,它和对应形参之间的数据传递方式是()。

(A)地址传递(B)单向值传递

(C)由实参传给形参,再由形参传回给实参(D)由用户指定传递方式

7.下面程序的输出是()。

#include

voidmain()

{

intx=10,y=3;

printf(〞%d\n〞,y=x/y);

}

(A)0(B)1(C)3(D)不确定的值

8.执行下面的程序段后,B的值为()。

intx=35;

charz=′A′;

intB;

B=((X&5)&&(z<′a′));

(A)0(B)1(C)2(D)3

9.以下程序的输出结果为()。

#include

voidmain()

{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.运行完下列程序后,在屏幕上的内容是()。

#include

voidmain()

{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.以下程序的输出结果是()。

#include

intx=3,y=4;

voidmain()

{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=&y;(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.程序的功能是:

统计输入字符串中小写字母的个数。

#include

voidmain()

{charc;

intnum=0;

while((c=getchar())!

=①)

{if(c<′a′‖c>′z′)

continue;

}

printf(〞%d\n〞,num);

}

2.下面程序的功能是输出数组中的各字符串,请填空完成程序。

#include

voidmain()

{char*a[]={〞abcd〞,〞12345〞,〞efghijk〞,〞67890〞};

intj=0;

for(;③;j++)

puts(④);

}

3.下面程序实现计算1+(1+2)+(1+2+3)+……+(1+2+3+……+10),请填空完善程序。

#include

voidmain()

{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!

〞,请填空完成函数。

#include

⑦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;

scanf(〞%d〞,&n);

printf(〞%s\n〞,fun(n));

}

5.下面程序的功能是打印出整数1~1000中满足条件:

〞个位数字的立方等于其本身〞的所有数,请填空完成程序。

#include

voidmain()

{intn;

for(i=1;i<1000;i++)

{g=⑨;

if(⑩)

printf(〞%4d〞,i);

}

printf(〞\n〞);

}

四.阅读程序,填写结果(每小题5分,共30分)

1.下列程序的运行结果是()。

#include

voidmain()

{voidadd();

inti;

for(i=0;i<3;i++)

add()

}

voidadd()

{staticintx=0;

x++;

printf(〞%d〞,x);

}

2.以下程序的输出结果为()。

#include

voidmain()

{inta,b,c,x;

a=b=c=0;

x=35;

if(!

a)

x--;

elseif(b)

;

if(c)

x=3;

else

x=4

printf(〞%d\n〞,x);

}

3.以下程序的输出结果为()。

#include

voidmain()

{inti,j,row,colum,max;

inta[3][4]={1,2,3,4,9,8,7,6,-10,10,-5,2};

max=a[0][0];

for(i=0;i<=2;i++)

for(j=0;j<=3;j++)

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.下面程序的执行结果是()。

#include

#defineMin(x,y)(x)<(y)?

(x):

(y)

voidmain()

{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);

}

voidmain()

{intm=1234;

fun(m);

putchar(′\n′);

}

6.以下程序的运行结果是()。

#include

voidmain()

{inta[]={1,3,5},s=1,j,*p=a;

for(j=0;j<3;j++)

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.一题答案填涂在答题卡上

2.二、三、四、五题答案做在答题纸上

一.单项选择题。

(每小题1分,共20分)

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>=y)&(y>=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=&x;(C)*p=x;(D)p=*&x;

8.在执行语句if((x=y=2)>=x&&(x=5))y*=x;后变量x,y的值应分别为()

(A)2、2(B)5、2(C)5、10(D)执行时报错

9.以下程序的输出结果为()

#include

voidmain()

{intx,n;

for(n=10,x=0;n=0;x++,n--)

;

printf(〞%d\n〞,x);

}

(A)程序无限循环无输出(B)10(C)1(D)0

10.下面程序的输出结果为()

#include

voidmain()

{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.下面程序执行后输出为()

#include

voidmain()

{enumweekday{sun,mon=3,tue,wed,thu};

enumweekdayday;

day=wed;

printf(〞%d\n〞,day);

}

(A)5(B)6(C)4(D)编译时出错

12.下面程序执行后输出为()

#include

voidmain()

{inta;

printf(〞%d\n〞,(a=3*5,a*4,a+5));

}

(A)65(B)20(C)15(D)10

13.以下程序的输出结果是()。

#include

voidmain()

{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.下面程序执行后输出为()

#include

intf(intn)

{if(n==1)return1;

elseif(n==2)return2;

elsereturnf(n-1)+f(n-2);

}

voidmain()

{printf(〞%d\n〞,f(4));

}

(A)1(B)2(C)3(D)5

15.下面程序的输出结果为()

#include

voidmain()

{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

{intn;

charch[8];

}Stt;

(A)Stt是结构体变量名(B)Stt是结构体类型名

(C)typedefstruct是结构体类型(D)struct是结构体类型名

18.下面程序执行后输出为()

#include

voidmain()

{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

二.基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号码填入各个小题的空白处。

没空2分,共10分)

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

三.程序填空题。

(每空2分,共20分)。

1.下面程序的功能是:

计算a数组中奇数的个数和奇数的平均值,请填空。

#include

voidmain()

{inta[10]={3,2,8,7,5,6,9,10,1,4},j,k=0,s=0;

floatave;

for(j=0;j<10;j++)

if(①)

{s+=a[j];

k++;

}

if(k!

=0)

{ave=②;

printf("%d,%f\n",k,ave);

}

}

2.下面程序的功能是:

将字符串b连接到字符串a的后面,请填空完成程序。

#include

#include

voidmain()

{chara[20]=〞Iam〞,b[]=〞astudent.〞;

inti,j;

i=strlen(a);

for(③;b[j]!

=’\0’;j++)

a[i+j]=④;

a[i+j]=⑤;

puts(a);

}

3.下面程序的功能是:

求出100以内整数中可以被13整除的最大数,请填空完成程序。

#include

voidmain()

{inti;

for(;⑥;i--)

if(⑦)

break;;

printf(〞%d\n〞,i);

return0;

}

4.下面程序的功能是:

用冒泡法对一维数组a按升序排序,请填空完成程序。

#include

voidmain()

{voidsort(inta[],intn);

inti,a[9]={2,6,1,4,3,5,9,8,7};

sort(⑧);

for(i=0;i<9;i++)

printf(“%3d”,a[i]);

printf(“\n”);

}

voidsort(inta[],intn)

{inti,j,temp;

for(i=0;i<⑨;i++)

for(j=0;j

if(a[j]>⑩)

{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}

}

四.阅读程序,填写结果(每小题5分,共30分)

1.下列程序的运行结果是()。

#include

voidmain()

{intx=-3;

x+=x-=x*x;

printf(〞x=%d\n〞,x);

}

2.以下程序的输出结果为()。

#include

voidmain()

{voidswap(intx,int*y);

inta=5,b=10;

printf(“%d,%d\n”,a,b);

swap(a,&b);

printf(“%d,%d\n”,a,b);

}

voidswap(intx,int*y)

{intt;

t=x;x=*y;*y=t;

}

3.以下程序的输出结果为()。

#include

#include

voidmain()

{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

{t=*s1;

*s1=*s2,s1++;

*s2=t,s2--;

}

}

4.以下程序的输出结果为()。

#include

inta,b,c,d;

voidmain()

{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)

p(a,b);

printf(“%3d%3d%3d%3d\n”,a,b,c,d);

}

5.下列程序的运行结果是()。

#include

voidmain()

{inta[3][2]={1,2,3,4,5,6},*p[3],i;

for(i=0;i<3;i++)

p[i]=a[i];

for(i=0;i<3;i++)

printf(〞%d〞

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1