级C语言练习题.docx

上传人:b****6 文档编号:4694293 上传时间:2022-12-07 格式:DOCX 页数:16 大小:21.07KB
下载 相关 举报
级C语言练习题.docx_第1页
第1页 / 共16页
级C语言练习题.docx_第2页
第2页 / 共16页
级C语言练习题.docx_第3页
第3页 / 共16页
级C语言练习题.docx_第4页
第4页 / 共16页
级C语言练习题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

级C语言练习题.docx

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

级C语言练习题.docx

级C语言练习题

2005级C语言练习题

班级__0502______姓名__王冠男____

一、选择题

1、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是()

A)有零个或多个输入B)有零个或多个输出

C)有穷性D)可行性

2、以下叙述中正确的是()

A)C语言的源程序不必通过编译就可以直接运行

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C)C源程序经编译形成的二进制代码可以直接运行

D)C语言中的函数不可以单独进行编译

3、以下符合C语言语法的实型常量是()

A)1.2E0.5B)3.14.159EC).5E-3D)E15

4、算法具有五个特性,以下选项中不属于算法特性的是()(A)有穷性(B)简洁性(C)可行性(D)确定性

5、以下选项中可作为C语言合法常量的是()

A)-80.B)-080C)-8e1.0(D)-80.0e

6、以下不能定义为用户标识符是()

A)MainB)_0C)_intD)sizeof

7、以下选项中,不能作为合法常量的是()

A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0

8、数字字符0的ASCII值为48,若有以下程序()

main()

{

chara='1',b='2';

printf("%c,",b++);

printf("%d\n",b-a);

}

程序运行后的输出结果是

A)3,2B)50,2C)2,2D)2,50

9、有以下程序[]

main()

{

intm=12,n=34;

printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);

}

程序运行后的输出结果是()

A)12353514B)12353513C)12343514D)12343513

10、有定义语句:

intb;charc[10];则正确的输入语句是()

A)scanf("%d%s",&b,&c);B)scanf("%d%s",&b,c);

C)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);

11、有以下程序

main()

{

inta,b,d=25;

a=d/10%9;b=a&&(-1);

printf("%d,%d\n",a,b);

}

程序运行后的输出结果是()

A)6,1B)2,1C)6,0D)2,0

12、有以下程序

main()

{

intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7)if(p[i]%2)j+=p[i];

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

}

程序运行后的输出结果是()

A)42B)45C)56D)60

13、以下能正确定义一维数组的选项是()

A)inta[5]={0,1,2,3,4,5};B)chara[]={0,1,2,3,4,5};

C)chara={'A','B','C'};D)inta[5]="0123";

14、有以下程序

main()

{

chara[7]="abc0\0a0\0";inti,j;

i=sizeof(a);j=strlen(a);

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

}

程序运行后的输出结果是()

A)22B)76C)74D)73

15、有以下程序

main()

{

inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i;

for(i=0;i<3;i++)printf("%d",a[1][i]);

}

程序运行后的输出结果是[]

A)012B)123C)234D)345

16、若以下选项中的变量已正确定义,则正确的赋值语句是()

A)x1=26.8%3B)1+2=x2C)x3=0x12D)x4=1+2=3;

17、设有以下定义

inta=0;

doubleb=1.25;

charc=’A’;

#defined2

则下面语句中错误的是()

A)a++;B)b++C)c++;D)d++;

18、设有定义:

floata=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相

符的是()

A)(a+b)*h/2B)(1/2)*(a+b)*hC)(a+b)*h*1/2D)h/2*(a+b)

18、有以下程序

main()

{

intx=102,y=012;

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

}执行后输出结果是()

A)10,01B)002,12C)102,10D)02,10

20、设有定义:

inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()

A)scanf("%d",pa);B)scanf("%d",a);

C)scanf("%d",&pa);D)scanf("%d",*pa);

21、有以下程序

main()

{inti,s=0;

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

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

}

程序执行后的输出结果是()

A)自然数1~9的累加和B)自然数1~10的累加和

C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和

22、若程序中定义了以下函数

doublemyadd(doublea,doubleb)

{return(a+b);}

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()

A)doublemyadd(doublea,b);B)doublemyadd(double,double);

C)doublemyadd(doubleb,doublea);D)doublemyadd(doublex,doubley);

23、有以下程序

charfun(charx,chary)

{if(x

returny;

}

main()

{inta='9',b='8',c='7';

printf("%c\n",fun(fun(a,b),fun(b,c)));

}

程序的执行结果是()

A)函数调用出错B)8C)9D)7

24、有以下程序段

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

b=p[5];

b中的值是()

A)5B)6C)8D)9

25、有以下程序

main()

{chara[]="abcdefg",b[10]="abcdefg";

printf("%d%d\n",sizeof(a),sizeof(b));

}

执行后输出结果是()

A)77B)88C)810D)1010

26、有以下程序

voidswap1(intc[])

{intt;

t=c[0];c[0]=c[1];c[1]=t;

}

voidswap2(intc0,intc1)

{intt;

t=c0;c0=c1;c1=t;

}

main()

{inta[2]={3,5},b[2]={3,5};

swap1(a);swap2(b[0],b[1]);

printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);

}

其输出结果是()

A)5353B)5335C)3535D)3553

27、有以下程序

intf(intb[][4])

{inti,j,s=0;

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

{i=j;

if(i>2)i=3-j;

s+=b[i][j];

}

returns;

}

main()

{inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

printf("%d\n",f(a));

}

执行后的输出结果是()

A)12B)11C)18D)16

28、有以下定义

#include

chara[10],*b=a;

不能给数组a输入字符串的语句是()

A)gets(a)B)gets(a[0])C)gets(&a[0]);D)gets(b);

29、有以下程序

main()

{char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};

printf("%d\n",strlen(p[4]));

}

执行后输出结果是()

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

30、有以下程序

#definef(x)x*x

main()

{inti;

i=f(4+4)/f(2+2);

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

}

执行后输出结果是()

A)28B)22C)16D)4

31、设有以下语句

typedefstructS

{intg;charh;}T;

则下面叙述中正确的是()

A)可用S定义结构体变量B)可以用T定义结构体变量

C)S是struct类型的变量D)T是structS类型的变量

32、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()

A)chars[10]="abcdefg";B)chart[]="abcdefg",*s=t;

C)chars[10];s="abcdefg";D)chars[10];strcpy(s,"abcdefg");

33、有以下程序

#include

main(intargc,char*argv[])

{inti,len=0;

for(i=1;i

printf("5d\n",len);

}经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行

exabcdefgh3k44

执行后输出结果是()

A)14B)12C)8D)6

34、有以下程序

structSTU

{charname[10];

intnum;

intScore;

};

main()

{structSTUs[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},

{"wangYin",20043,680},{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

for(i=0;i<5;i++)p[i]=&s[i];

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

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

if(p[i]->Score>p[j]->Score)

{t=p[i];p[i]=p[j];p[j]=t;}

printf("%5d%d\n",s[1].Score,p[1]->Score);

}

执行后输出结果是()

A)550550B)680680C)580550D)580680

35、以下叙述中正确的是[]

A)预处理命令行必须位于源文件的开头

B)在源文件的一行上可以有多条预处理命令

C)宏名必须用大写字母表示

D)宏替换不占用程序的运行时间

36)以下语句或语句组中,能正确进行字符串赋值的是[]

A)char*sp;*sp="right!

";B)chars[10];s="right!

";

C)chars[10];*s="right!

";D)char*sp="right!

";

37、有以下程序

main()

{chars[]="159",*p;

p=s;

printf("%c",*p++);printf("%c",*p++);

}

程序运行后的输出结果是()

A)15B)16C)12D)59

38、有以下程序

main()

{intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

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

{for(j=0;j<=i;j++)printf("%4c",'');

for(j=_____;j<4;j++)printf("%4d",num[j]);

printf("\n");

}

}

若要按以下形式输出数组右上半三角

1234

678

1112

16

则在程序下划线处应填入的是()

A)i-1B)iC)i+1D)4-i

39)有以下程序

point(char*p){p+=3;}

main()

{charb[4]={'a','b','c','d'},*p=b;

point(p);printf("%c\n",*p);

}

程序运行后的输出结果是()

A)aB)bC)cD)d

40、有以下程序

#defineP3

voidF(intx)

{return(P*x*x);}

main()

{printf("%d\n",F(3+5));}

程序运行后的输出结果是()

A)192B)29C)25D)编译出错

二、填空题

1、已知字符A的ACSII码值为65,以下语句的输出结果是___________________。

charch=’B’;

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

2、有以下语句段

intn1=10,n2=20;

printf("__________",n1,n2);

要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。

n1=10

n2=20

3、有以下程序

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}执行后输出结果是________________。

4、有以下程序

main()

{intn=0,m=1,x=2;

if(!

n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}执行后输出结果是________________。

5、有以下程序

voidf(inty,int*x)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

f(y,&x);

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

}执行后输出的结果是_____________。

6、以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。

请填空。

voidsstrcpy(char*s,char*t)

{while(*s++=________________);}

main()

{charstr1[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

printf("%s\n",str1);

}

7、下面程序的运行结果是:

________

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

}

main()

{intaa[3]={1,2,3},s;

s=f(&aa[0],3);printf("%d\n",s);

}

8、以下程序中给指针p分配三个double型动态内存单元,请填空。

#include

main()

{double*p;

p=(double*)malloc(________);

p[0]=1.5;p[1]=2.5;p[2]=3.5;

printf("%f%f%f\n",p[0],p[1],p[2]);

}

9、以下程序的运行结果是______________。

#include

typedefstructstudent{

charname[10];

longno;

floatscore;

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(a.name,b.name)>0)d=b;

if(strcmp(c.name,d.name)>0)d=c;

printf("%ld%s\n",d.no,p->name);

}

10、以下sum函数的功能是计算下列级数之和。

S=1+x+x2/2!

+x3/3!

+........+xn/n!

请给函数中的各变量正确赋初值。

doublesum(doublex,intn)

{inti;doublea,b,s;

__________________;

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

{a=a*x;b=b*i;s=s+a/b;}

returns;

}

11、以下程序运行后的输出结果是_________

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

main()

{

inti=6,j=8;

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

}

12、以下程序运行后的输出结果是_____________

main()

{

inta,b,c;

a=10;b=20;c=(a%b<1)||(a/b>1);

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

}

13、以下程序运行后的输出结果是______

voidswap(intx,inty)

{intt;

t=x;x=y;y=t;printf("%d%d",x,y);

}

main()

{inta=3,b=4;

swap(a,b);printf("%d%d\n",a,b);

}

14、以下程序运行后的输出结果是_____

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));

printf("\n");

}

15、以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,

函数返回字符串:

yes!

否则函数返回字符串:

no!

并在主函数中输出.所谓回文即

正向与反向的拼写都一样,例如:

adgda.请填空.

#include

char*huiwen(char*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=______;

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!

=*p2--){t=1;break;}

if(____)return("yes!

");

elsereturn("no!

");

}

main()

{charstr[50];

printf("Input:

");scanf("%s",str);

printf("%s\n",______);

}

16、以下程序运行后的输出结果是___

main()

{charc1,c2;

for(c1='0',c2='9';c1

printf(“%c%c”,c1,c2);

printf("\n");

三、设计程序

1、设n=50,编写程序,计算并输出S(n)的值,要求结果保留6位小数。

S(n)=(1*2)/(3*4)-(3*4)/(5*6)+(5*6)/(7*8)+…+(-1)^(n-1)*[(2n-1)*2n]/[(2n+1)*(2n+2)]+…

(参考答案-0.472034)

2、编写程序,求下面级数前n项的和S(n),要求S(n)应满足|S(n)-S(n-1)|<0.0001。

结果取6位小数。

1+1/2^4+1/3^4+1/4^4+…+1/n^4+…(其中,^表示幂运算)(1.082037)

3、设n=35,编写程序,计算并输出下面数列前n项的和,结果取6位小数。

2/3,4/5,6/7,8/9,10/11,12/13,14/15,…(38.161447)

4、编写程序,求一元非线性方程f(x)=2x+lnx-3.7=0在区间(1,5)上的近似根r,精确到0.00001。

参考答案(1.6114)

5、输入100个数,输出最小的10个数。

6、编写程序,自己产生一个二维数组A(N,N),(N取5),分别计算出数组中每一行数据的平均值。

7、输入5名学生记录,每个记录含学生姓名,学号,性别,成绩,按成绩从高至低的次序输出学生记录。

8、编写一个通用过程(函数或子程序),判断一个5位数是否满足以下条件:

(1)该数能被3整除。

(2)取它的右边3位数,这个3位数也能被3整除。

例如:

12000、30444、51813。

要求调用该过程,计算并输出区间[10000,20000]之间满足条件的数据的个数。

(参考答案1002)

9、编写程序,从键盘输入一批不少于10个的任意数据,统计小于平均值的数据的个数。

10、计算并输出0°—360°之间每间隔40°(不含边界)的正弦值。

11、建立一单向链表。

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

当前位置:首页 > 高中教育 > 理化生

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

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