C语言练习题上半部doc.docx

上传人:b****5 文档编号:6497974 上传时间:2023-01-07 格式:DOCX 页数:43 大小:43.37KB
下载 相关 举报
C语言练习题上半部doc.docx_第1页
第1页 / 共43页
C语言练习题上半部doc.docx_第2页
第2页 / 共43页
C语言练习题上半部doc.docx_第3页
第3页 / 共43页
C语言练习题上半部doc.docx_第4页
第4页 / 共43页
C语言练习题上半部doc.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

C语言练习题上半部doc.docx

《C语言练习题上半部doc.docx》由会员分享,可在线阅读,更多相关《C语言练习题上半部doc.docx(43页珍藏版)》请在冰豆网上搜索。

C语言练习题上半部doc.docx

C语言练习题上半部doc

C语言练习题

长安大学2004-2005学年第二学期试题(A)卷

一.单项选择题。

(20小题,每小题2分,共40分)

1.C程序设计语言是

A)机器语言B)只适合编写应用软件的语言

C)高级语言D)只适合编写系统软件的语言

2.在C语言中不合法的变量名是

A)6AB)aBcC)Li_12D)_jsj

3.在C语言中,合法的字符常量是

A)'\018’B)'\\'C)'ab'D)"\0"

4.以下说法中错误的是

A)一个C程序可以由一个或多个函数构成。

B)一个C程序必须有而且只能有一个main函数。

C)在计算机上编辑C程序时,每行只能写一条语句。

D)C程序是由函数构成的。

5.一个可执行C程序的开始执行点是

A)程序的第一行语句B)程序的第一个函数

C)包含文件的第一个函数D)名为main()的函数

6.要使变量x被赋值为486,变量y被赋值为-286,则运行到语句scanf("%d,%d",&x,&y);时正确的输入是

A)486,-286↙B)486-286↙C)486↙-286↙D)123:

456↙

7.在C语言中要求运算对象必须是整数的是

A)/B)+C)?

:

D)%

8.C语言的if语句中,用作判断的表达式为()

A)任意表达式B)算术表达式C)关系表达式D)逻辑表达式

9.下列程序段中的循环体被运行或被执行()次

intk=21;

while(k>0){k=k/3;k--;}

A)1B)2C)3D)4

10.合法的数组定义是

A)inta(5)={1,2,3,4,5};B)inta[][3]={{0,1,2},{6,5,4},{9,8,7}};

C)chara[5]="Iamaboy!

";D)chara[]=’boy’;

11.若有以下定义,则以下关于标识符prt的正确说法是

int(*prt)[3];

A)定义不合法。

B)是一个指针数组名,每个元素是一个指向整型变量的指针。

C)是一个指针,它指向一个具有3个元素的一维数组。

D)是一个指向整型变量的指针。

12.已知intx=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

13.若有以下程序片段。

则中的表达式都是对数组元素的正确引用(0≤i<4,0≤j<3)。

main()

{inta[4][3]={0},(*p)[3],i,j;

p=a;……}

A)a[i][j],a[i]+j,*(*(a+i)+j)B)*(p+i)[j],p[i]+j,*(*(p+i)+j)

C)*(p+i)[j],*(a+i)[j],*(p+i+j)D)p[i][j],*(p[i]+j),*(a[i]+j)

14.若有两个字符串str1,str2,要比较二者是否相等,正确的if语句是

A)if(str1==str2)B)if(str1=str2)

C)if((str1-str2)==0)D)if(strcmp(str1,str2)==0)

15.执行如下程序,则结果为

#defineP(a,b)a*b+1

main()

{intx=1,y=2,z;

z=P(x+y,4+3);printf("%d",z);}

A)22B)13C)23D)21

16.某结构体变量定义如下,对此结构体变量中的元素的引用形式正确的是

structa

{intnum;

charname[10];

}b1,*p;

p=&b1;

A)b1->numB)p.nameC)(*p).nameD)*p.num

17.若有两个基本类型相同的指针p1和p2,则下列运算不合理的是

A)p1+p2B)p1-p2C)p1=p2D)p1==p2

18.下列关于C语言的文件操作叙述正确的是

A)先关闭文件B)先测试文件已存在,再打开文件

C)先打开文件D)对操作顺序无要求

19.主函数main()带参数的正确形式是

A)main(int*argc,charargv)B)main(intargc,charargv[])

C)main(intargc,char*argv)D)main(intargc,char*argv[])

20.设有以下定义,则共用体变量d在内存中占的字节数是

union

{floata;

intb;

charc;}d;

A)7B)4C)6D)8

二、程序填空题(10个空,每空2分,共20分)

1.从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“#”为止。

#include

main()

{FILE*fp;

charch,filename[10];

scanf("%s",filename);

if((fp=

(1)(filename,"w"))==NULL)

{printf("cannotopenfile\n");exit(0);}

ch=getchar();ch=getchar();

while(

(2))

{fputc(ch,fp);

putchar(ch);

ch=getchar();}

(3)(fp);}

 

2.求键盘输入的字符串的长度

#include"stdio.h"

main()

{charstring[50];

intj=0,len=0;

printf(“\nQingshuru1gezifuchuan:

”);

gets(string);

while((4))

{(5);j++;}

printf("\nItis%d",len);

}

3.求个位上是2且能被6整除的所有4位数的个数。

#include"stdio.h"

main()

{inti;

intcount;

count=0;

for(i=1002;i<___(6)____;i++)

if(___(7)____)count++;

printf("count=%d\n",count);

}

4.由键盘输入10个无序的数,找出其中最小数及其下标后,每5个数为1行输出这10个数,然后输出最小数及其下标

#include"stdio.h"

main()

{inta[10],i,min,temp;

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

scanf("%d",_____(8)_____);

min=a[0];temp=0;

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

if(a[i]

{_____(9)____;temp=i;}

printf("\n");

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

{if(___(10)___)printf("\n");

printf("%6d",a[i]);}

printf("\nmin=%dposition=%d\n",min,temp);

}

 

长安大学2004-2005学年第二学期试题(B)卷

一、单向选择题(每题2分,共60分)

1)以下变量名中,正确的是:

A).$xB).2aC)._alD).a-1

2)intx;下面哪个表达式满足x为奇数时为真,x为偶数时为假?

A).x%2==0B).(x/2*2-x)==0C).!

(x%2)!

=0D).(x%2)

3)若已定义:

inta[9],*p=a;并在以后的语句中未改变p的值,

不能表示a[1]地址的表达式为________

A).p+1B).a+1C).a++D).++p

4)逗号表达式(x=3*2,++x),x=x+10执行后x的值为

A).7B).6C).17D).16

5)以下选项中属于C语言的数据类型是________

A).复数型B).双精度型C).逻辑型D).集合型

6)指针s所指字符串的长度为

char*s="0\101+101\\Name-\xab";

A).13B).21C).17D).20

7)下面程序的输出结果是

main()

{intx=3;

do{printf(“%2d”,x--);}while(!

x);}

A).3B).321C).不打印任何内容D).陷入死循环

8)在C语言中,不正确的int类型的常数是________

A).32768B).0C).037D).0xAF

9)inta=2,b=-2;语句printf("%d",(a=2)&&(b=-2));的输出结果是

A).无输出B).0C).-1D).1

10)设有定义:

intx=1,y=-1;则语句:

printf("%d\n",(x--&&++y));的

输出结果是________

A).1B).0C).-1D).2

11)下列描述中不正确的是________

A).字符型数组中可能存放字符串

B).可以对字符型数组进行整体输入、输出

C).可以对整型数组进行整体输入,输出

D).不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

12)当c的值不为0时,________能正确将c的值赋给变量a、b

A).c=b=a;B).(a=c)||(b=c)C).(a=c)&&(b=c)D).a=c=b

13)若w=1,x=2,y=3,z=4,则表达式w

w:

(y

y:

z)结果是

A)4B)3C)2D)1

14)以下程序的输出结果是________

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

A).10192B).9876C).10990D).101091

15)已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是

if(x>y)

z=x;x=y;y=z;

A).x=10,y=20,z=30B).x=20,y=30,z=20

C).x=20,y=30,z=10D).x=20,y=30,z=30

16)数组名作为实参调用函数,实际传给形参的是

A).数组中全部元素值B).数组中元素个数

C).数组第一个元素值D).数组首地址

17)若定义inta=6;则a+=a*a的值为

A).72B).36C).42D).表达式错误

18)执行以下程序段后,s的值为

inta[]={5,3,7,2,1,5,4,10};

ints=0,k;

for(k=0;k<8;k+=3)

s+=a[k];

A).17B).11C).13D).27

19)以下程序的输出结果是________

main()

{inti,x[3][3]={{9,8,7},{6,5,4},{3,2,1}},*p=&x[1][1];

for(i=0;i<2;i++)printf("%d",p[i]);

}

A).87B).65C).54D).98

20)以下程序的运行结果是

main()

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

printf(“%d\n”,*(p+3));}

A)10B)6C)7D)8

21)以下程序的运行结果是________

main()

{chara[10]={'1','2','3','4','5','6','7','8','9',’\0’},*p;

inti;

i=8;

p=a+i;

printf("%s\n",p-3);

}

A)6B)6789C)9D)789

22)以下程序的输出结果是

#definef(x)x+x

main()

{inta=6,b=2,c;

c=f(a)*f(b);

printf("%d\n",c);

}

A).48B).64C).20D).12

23)以下程序的输出结果是________

main()

{intn[3][3]={1,2,3,4,5,6,7,8,9},i,j;

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

for(j=0;j<2;j++)n[i][j]=0;

printf("%d\n",n[i][j]);

}

A).0B).6C).9D).8

24)以下程序的输出结果是________

main()

{intw=5;

fun(w);

printf("\n");

}

fun(intk)

{if(k>0)fun(k-1);

printf("%d",k);

}

A).54321

B).012345

C).12345

D).543210

25)以下程序的输出结果是________

intd=1;

fun(intp)

{staticintd=5;

d+=p;

printf("%d",d);

return(d);

}

main()

{inta=3,b;

b=a+fun(d);

printf("%d\n",fun(b));}

A).699B).669C).61515D).6615

26)请选出以下程序段的输出结果

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

(x):

(y))

main()

{inti,j,k;

i=10;j=15;

k=10*MIN(i,j);

printf(“%d\n”,k);

}

A).15B).100C).10D).150

27)以下对结构体变量stul中成员age的非法引用是

structst

{intage;

intnum;}stul,*p;

p=&stul;

A).stul.ageB).ageC).p→ageD).(*p).age

28)以下程序的输出结果是________(提示:

字母A的ASCII代码是65)

main()

{union{charc[2];

inti;

intk;

}r;

r.c[0]=67;r.c[1]=0;

r.i=65;r.k=66;

printf("%c%d%d\n",r.c[0],r.i,r.k);

}

A).676566B).B6666C).C6566D).666666

29)主函数main()带参数的一般形式是

A)main(int*argc,charargv)B)main(intargccharargv[])

C)main(intargccharargv)D)main(intargcchar*abc[])

30)要打开一个已存在的非空文件“file”用于修改,选择正确的语句是

A).fp=fopen(“file”,”r”)B).fp=fopen(“file”,”ab+”)

C).fp=fopen(“file”,”w”)D).fp=fopen(“file”,”r+”)

二、填空题(每空2分,共20分)

1).下面程序用起泡法对数组中的10个元素值从小到大排序。

main()

{inta[11],i,j,t;

printf(“input10numbers:

\n”);

for(i=1;i<11;i++)scanf(“%d”,&a[i]);

for(j=1;j<=9;j++)

for(i=1;i<=10-j;i++)

if(①)

{t=a[i];②;a[i+1]=t;}

printf(“thesortednumbers:

\n”);

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

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

}

2).下面程序的功能是:

输出100以内能被3整除且个位数为6的所有正整数。

main()

{inti,j;

for(i=0;③;i++)

{j=i*10+6;

if(④)continue;

printf(“%5d”,j);}

}

3).函数strcat(strl,str2)实现将字符串str2拼接到字符串strl后面的功能。

char*strcat(char*str1,char*str2)

{char*t=str1;

while(*str1!

=’\0’)⑤;

while(⑥);

return(t);

}

4).以下程序的功能是:

从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。

请填空。

main()

{floatx[100],sum=0.0,ave,a;

intn=0,i;

printf("Entermark:

\n");scanf("%f",&a);

while(a>=0.0&&a<=100)

{sum+=___⑦____;x[n]=____⑧____;

n++;

scanf("%f",&a);}

ave=_____⑨____;

printf("Output:

"\n");

printf("ave=%f\n",ave);

for(i=0;i

if(____⑩_)printf("%f\n",x[i]);

}

三、阅读下列程序,写出运行结果。

(每题2分,共10分)

1).运行完下面的程序后,a,b的值是

main()

{intx=10,y=9,a,b;

a=(--x==y++)?

--x:

++y;

b=x++;

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

}

2).运行完下面的程序后,结果是

main()

{inti,x;

for(i=1,x=1;i<=20;i++)

{if(x>=10)break;

if(x%2==1)

{x+=5;continue;}

x-=3;}

printf(“i=%d,x=%d”,i,x);

}

3).有下面程序,现从键盘输入-1,则程序的输出是

main()

{intx,y;

scanf(“%d”,&x);

if(x++<0)y=-1;

elseif(x==0)y=0;

elsey=1;

printf(“y=%d\n”,y);

}

4).运行完下面的程序后,输出结果是

main()

{inti,j,r,c,m;

intarray[3][3]={100,200,300,20,72,-30,-850,2,6};

m=array[0][0];

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

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

if(array[i][j]

{m=array[i][j];r=i;c=j;}

printf(“m=%d,r=%d,c=%d\n”,m,r,c);}

 

长安大学2005-2006学年第二学期试题(A)卷

一、选择题(每空2分,共60分)

1.以下变量名中,正确的是:

A.$xB.2a

C._alD.a-1

2.以下合法的常量是:

A.10e2.5B.e-3

C.100LD.100M

3.若x,y为float型量,x=5,y=5.8;则命令printf(“%3.1f”,(x,y));的输出结果是

A.5.05.8B.5.8

C.5.0D.输出格式不对

4.以下说法中正确的是__________.

A.C语言程序总是从第一个函数开始执行

B.在C语言程序中,要调用的函数必须在main()函数中定义

C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分

5.下面程序的输出结果是__________.

main()

{intx=20,y=10;

printf("%d%d\n",x--,--y);

}

A.209B.199

C.1910D.2010

6.有以下程序,运行后的输出结果是

#include

main()

{char*p="abcde\0fghjik\0";

printf(“%d\n",strlen(p));

}

A.12B.15C.6D.5

7.C语言中,函数值的类型定义可以缺省,此时函数值的隐含类型是

A.voidB.int

C.floatD.double

8.以下程序的输出结果是

main()

{intk=17;

printf("%d,%o,%x\n",k,k,k);

}

A.17,021,0x11B.17,17,17

C.17,0x11,021D.17,21,11

9.以下程序执行后sum的值是__________.

main()

{inti,sum;

for(i=1;i<6;i++)sum+=i;

printf("%d\n",sum);}

A.15B.14

C.不确定D.0

10.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是__________.

A.地址传递B.单向值传递

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

11.以下程序运行后的输出结果是。

#defineS(x)1+4*x*x

main()

{inti=2,j=3;

printf("%d\n",S(i+j));

}

A.20B.18C.101D.125

12.有如下定义,x变量占的字节数是

struct

{intn;

chara[10];

floatm;

}x;

A.10B.8C.14D.16

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

main()

{inti;

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

{if(i%2==1)printf(“*”);

elsecontinue;

printf

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

当前位置:首页 > 求职职场 > 自我管理与提升

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

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