C语言练习题带答案_第1页
C语言练习题带答案_第2页
C语言练习题带答案_第3页
C语言练习题带答案_第4页
C语言练习题带答案_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、WOR/式单项选择题1 A )是构C语言程序的根本单位.( 成A、函数B、过程C、子程序D、子例程2 . C语言程序从 C,开始执行.A)程序中第一条可执行语句B)程序中第一个函数C)程序中 main函数D)包含文件中的第一个函数I3、以下说法中正确的选项是C ).(A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始局部4.以下关于C语言的说法错误的选项是( B )A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写.C) C程

2、序的三种根本结构是顺序、选择、循环D) C程序从main函数开始执行5,以下正确的标识符是(C ).A.-a1B.aiC.a2_D.intti 6.下C语言用户标识符中合法的是B).列 (A)3aB)C)case D)-e2 E)unionxx7.以下四组选项中,正确C语言标识符是C ).的(A)%xB)a+bC)a123D)1238、以下四组字符串中都可以用 作A、_3d db8 aBcprintC、Cpp pow whilstr_1e9.语言中的简单数据类型包括C (A、整型、实型、逻辑型C、整型、字符型、逻辑型C语言程序中的标识符的是B、D、Iamone_halfPxq My->b

3、ook10.C语言程序中,表达在 式A)2.5B)2start$itline #A).3paiHis.ageB、整型、实型、逻辑型、字符型D、整型、实型、字符型5%2的结果 C是C)1D)311 .如 inta=3,b= ;那么条件表达果4 式A)3B)4"a<b?a:b 的值是C)0D)112.假设intx=2,y=3,z=4专业资料整理WOR/式那么表达式x<z?y:z 的结果 (B ).是A) B)3C)2D)0E)14B )D) 'T?或?F?13 . C语言中,关系表达式和逻辑表达式的值是 (A)0B)0 或 1C)114 .下面(D)表达式的值为4.A

4、) 11/3B) 11.0/3专业资料整理WOR/式C)(float)1 1/315.设整型变量A.b=1.0/aD) (int)(11.0/3+0.5)a=2,小那么执行以下语句后,浮点型变b的值不 为0.5的是B.b=(float)(1/a)C.b=1/(float)a16.假设“intn;floatf=13.8;A.1D.b=1/(a*1.0),那么执行n=(int)f后,n的值是A)B.4%3C.4.333333D.4.617.以下对一维数 组A)chara (10);C)intk =5, ak;以下能对一维数组18.的正确说明是:B)intaD) chara3=,a?,?b?,19.

5、在20、A.inta5=(0,1,2,3,4,)C.inta3=0,1,2?c?;a进行初始化的语句是:(B.inta(5)=D.inta5=10*1C语言中对一维整型数组的正确定义为A)inta(10);B)intn=10,an;C)intn;an;D)#defineN10:in tA、a10a10 ;B、那么对a3.5intaN;a数组元素的正确引用是C、a(5)D、21.假设有以下数组说明, 那么i=10;aa i元素数值是a0B ).inta12=1,4,7,10,2,5,8,11,3,6,9,12;A.10B.9C.6D.522.假设有说明:inta3=1,2,3,4,5A. 2,6

6、,7;B. 3 C.那么数 纽a的第一维的大小 为:(B)D.无确定值57D)36923.对二维数组的正确定义是A.inta尸1,2,3,4,5,6;B.inta2=1,2,3,4,5,6;C.inta3=1,2,3,4,5,6D.inta2,3=1,2,3,4,5,6;24. inta34;A)a24那么对数组元素引用正确的 是B)a1,3C)a225c语言中函数返回值的类型是 由0AA)函数定义时指定的类型D)a(2)(1)决定的.B)return语句中的表达式类型C)调用该函数时的实参的数据类型D)形参的数据类型26.在C语言中,函数的数据类型是指(A)专业资料整理WOR/式B.函数形参

7、的数据类A函数返回值的数据类型型D.任意指定的数据类C调用该函数时的实参的数据类型型在函数调用时,以下说法正确的选项是27.(B)A.函数调用后必须带回返回值B.实际参数和形式参数可以同名C.函数间的数据传递不可以使用全局变量D.主调函数和被调函数总是在同一个文件里28 .在C语言中,表示静态存储类别的关键字:( C )A)auto B)registerC)stati D)externc专业资料整理WOR/式29 .未指定存储类别的变量,其隐含的存储类别为(A ).A)auto B)static C)extern D)register30 .假设有以下说明语句:struct studentin

8、tnum;charname口;floatscore;stu;那么下面的表达不正确的选项是:(D)A.struct是结构体类型的关键字B.structstudent 是用户定义的结构体类型C.num,score都是结构体成员名D.stu是用户定义的结构体类型名31 .假设有以下说明语句:struct dateintyear;intmonth;intday;brithday;那么下面的表达不正确的选项是C.A) struct是声明结构体类型时用的关键字B) structdate是用户定义的结构体类型名C) brithday 是用户定义的结构体类型名D) year,day都是结构体成员名 三 :32

9、 .以下对结构变量stul中成员age的非法引用是 Bstructstudentintage ;intnum ;stu1,*p ;p=&stu1 ;A)stu1.age B)student.age C)p->age D)(*p).age33 .设有如下定义:struckskinta;floatb;data;int*p;假设要使P指 data中的a域,正确的赋值语句C八一向是_A)p=&a;D)*p=data.a;B)p=data.a; C)p=&data.a;34 .设有以下说明语句:typedef struct stu专业资料整理WOR/式inta;floatb

10、;专业资料整理WOR/式stutype;那么下面表达中错误的选项是(A、struct是结构类型的关键字B、structstu是用户定义的结构类型C、a和b都是结构成员名D、stutype是用户定义的结构体变量名35 .语句int*p; 说明了 C oA) pB) p C)p是指向一维数组的指针是指向函数的指,该函数返回D)p针是指 向是函数 名in型数据的指针t,该函数返回一指向in t36.以下不正确的定义是A. int*p=&i,i;C. inti,*p=&i;37.假设有说明:intn=2,*p=&n,*q=p,in型数据t型数据的指针B.int*p,i;D.in

11、ti,*p;那么以下非法的赋值语句是D) p=nA) p=qB) *p=*q38 .有语句:inta10,; 那么 BC) n=*q是对指针变量p的正确定义和初始化.C)intp=&a; D)int*p=&a;,那么对数组元素的正确引用是(C).A)intp=*a; B)int*p=a;39 .假设有说明语句“ inta5,*p=a;A.apB.paC.*(p+2)D.p+240.有如下程序inta10=1,2,3,4,5,67,89,10,*P=a;那么数值 为9的表达式 是A)*P+9B)*(P+8)C)*P+=9D)P+841作为字符串结束标志A)?n?B)?C)?0?D

12、)?0?42F列数据中属于“字符串常量的是434445A. “aB.ABCcharx="hello",y='h','e','a',' b','e',A)相同B)x大于y下面各函数中能实现翻开文件功能的 是A)fopenB)fgetc卜列语句中,把变量A)FILE *fp;C)file *fp;C. 'abc0'D. 'a'那么关于两个数组长度的正确描述是C)x小于yD)以上答案都不对C)fputcD)fcloseB.fp说明为一个文件型指针的是fpB)FILE ;

13、D)file fp;(A).专业资料整理WOR/式filel, 并且FILE*fp ,下面fopen函数正确的调 用46.以读写方式翻开一个已有的文本文件 方式是(B) oA.fp=fopen("filel:"r")B.fp=fopen("filel:"r+)C.fp=fopen("filel ,“rb )D.fp=fopen( "filel ","w )专业资料整理WOR/式读程序根本输入输生及流程限制1.#include<stdio.h>main()inta=1,b=3,c=5;if(c=

14、a+b)printf("yes'n");elseprintf("no'n");运行结果为:no2.#include<stdio.h>main()inta=12,b=-34,c=56,min=0;min=a;if(min>b)min=b;if(min>c)min=c;printf("min=%d",min);运行结果为: min=-343.#include<stdio.h>main()intx=2,y=-1,z=5;if(x<y)if(y<0)z=0;elsez=z+1;p

15、rintf("dH',z);专业资料整理WOR/式)运行结果为:专业资料整理WOR/式4.#include<stdio.h>main()floata,b,c,t;a=3;b=7;c=1;if(a>b)t=a;a=b;b=t;if(a>c)t=a;a=c;c=t;if(b>c)t=b;b=c;c=t;printf("%5.2f,%5.2f,%5.2f',a,b,c);运行结果为:1.00,2.00,7.005.#include <stdio.h>main() floatc=3.0,d=4.0;if(c>d)c=5

16、.0;elseif(c=d)c=6.0;else c=7.0;printf( "n.1f",c);运行结果为:7.06.#include<stdio.h>main()intm;scanf("%d",&m);if(m>=0)if(m%2=0)printf("%disapositiveevenn",m);else printf("%disapositiveoddn",m);elseif(m%2=0)printf("%disanegativeevenn",m);else pr

17、intf("%disanegativeoddn",m);假设键入9,那么运行结果为: -9isanegativeodd专业资料整理WOR/式7.#include<stdio.h>main()intnum=0 ;while(num<=2)num+; 运行结果为:1238.#include<stdio.h>main()intsum=10,n=1;while(n<3) sum=sum-n; n+; printf("d,%d ,n,sum);运行结果为:3,79.#include<stdio.h>main()intnum,c

18、;scanf("%d",&num);do c=num%10; printf("%d",while(num/=10)>0);c);printf("n");从键盘输入23 ,那么运行结果为: 3210.#include<stdio.h>main()ints=0,a=5,n;scanf("%d",&n);do s+=1;a=a-2;while(a!=n);printf("%d , %dn",s,a);假设输入的值1 ,运行结果为:2,1专业资料整理WOR/式11. .

19、#include"stdio.h"main()charc;c=getchar();while(c!='?')putchar(c); c=getchar();如果从键盘输入abcde ? fgh (回车)运行结果为:abcde12. .#include<stdio.h>main()charc;while(c=getchar()!=?$?)if(,A?<=c&&c<' Z?) putchar(c);elsei a' <=c&&c<= z' ) putchar(c- f(3

20、2);当输入 ab*AB%cd#CD$ 时,运行结果为:ABABCDCD13.#include<stdio.h>main()intx,y=0;for(x=1;x<=10;x+)if(y>=10)break;y=y+x;printf( "d%d ,y,x);运行结果为:10514.#include<stdio.h>main()charch;ch=getchar();switch(ch)case ,A?:printf(专业资料整理WOR/式case,B?:print f(default:printf()"C ,?A?);"C ,?B

21、?); break;n%s , " other当从键盘输入字A时,运行结果为:母AB专业资料整理WOR/式“90n);“80n);“70n);"60n );break;“<60n);“error!n " );专业资料整理15.#include<stdio.h>main()inta=1,b=0 ;scanf( "d ,&a);switch(a)case1:b=1 ; break; case2:b=2 ; break ;default:b=10 ; printf("%d",b) ;假设键盘输入5 ,运行结果为:1

22、016.#include<stdio.h>main()_chargrade=?C?;switch(grade)case,A?:printf( case,B?:printf( case,C?:printf( case,D?:printf( case,E?:printf( default:printf(运行结果为:70-8060-7017.#include<stdio.h>main()inty=9;for(;y>0;y-)if(y%3=0)printf(%d ",-y);continue;运行结果为:852WOR/式18.#include<stdio.

23、h>main()inti,sum=0; i=1;dosum=sum+i;i+;while(i<=10); printf( "d ,sum);运行结果为:5519.#include<stdio.h>#defineN4main()inti;intx1=1,x2=2;printf("n");for(i=1;i<=N;i+)printf("%4d%4d,x1, x2);if(i%2=0) printf("n");x1=x1+x2;x2=x2+x1;运行结果为:12358 13213420#include<s

24、tdio.h>main() int x,y;for(x=30,y=0;x>=10,y<10;x-,y+) x/=2,y+=2;printf("x=%d,y=%dn,x,y);运行结果为:x=0,y=12专业资料整理WOR/式21.#include<stdio.h>#defineN4main()int i,j;for(i=1;i<=N;i+)for(j=1;j<i;j+)prin tf("");printf("*");printf("n");运行结果为:*专业资料整理WOR/式数组1.

25、#include<stdio.h>main() int i,a10;for(i=9;i>=0;i-)ai=10-i;printf( "d%d% ,a2,a5,a8);运行结果为:8522.#include<stdio.h>main()inti,a6;for(i=0;i<6;i+)ai=i;for(i=5;i>=0;i-)printf("%3d",ai);运行结果为:5 4 3 2 103.#include<stdio.h>main();inti,k,a10,p4. k=5;for(i=0 ; i<10 ;

26、 i+)ai=i ;for(i=0; i<3 ; i+)pi=ai*(i+1)for(i=0; i<3 ; i+)k+=pi*2;printf("%d'n",k)运行结果为:21专业资料整理WOR/式4.#include<stdio.h>int m33=1,2,3);int n33=1,2,3;main()printf( "d,",m10+n00);printf( "dn",m01+n10);运行结果为:3,05.#include<stdio.h>main()inti;intx33=1,2,

27、3,4,5,6,7,8,9;for(i=1;i<3;i+)printf("%d ",xi3-i);运行结果为:6. 87.#include<stdio.h>main()intn33,i,j;for(i=0 ; i<3 ; i+)for(j=0 ; j<3 ; j+) nij=i+j;printf( "%d ,nij);printf( "n );运行结果为:0121 232 34专业资料整理WOR/式7.#include<stdio.h> main() chardiamond5= ,_?,?_?,?*?,_,?*?

28、,?_?,?*?, *?*?*?*?i, _ ,一,一,l,_,_ ,_?,?_?,?*?;inti,j;for(i=0;i<5;i+)for(j=0;j<5;j+)printf("C ,diamondij);printf( “n ");注:“代表一个空格C 运行结果为:* * *8.#include<stdio.h>main()inti,f10;f0=f1=1;for(i=2;i<10;i+)fi=fi-2+fi-1;for(i=0;i<10;i+)if(i%4=0)printf( "n ); printf( "d

29、",fi);运行结果为:112 35 8132134 55专业资料整理WOR/式9.#include.hstdiofunc(int b) intj;for(j=0;j<4;j+)bj=j;main() int a4,i;func(a);for(i=0;i<4;i+)printf("2d ,ai);运行结果为:012310.#include<stdio.h>main ()floatfun(floatx);floatave,a3=4.5,2,4;ave=fun (a); printf( " ave=%7.2f ,ave);floatf (flo

30、atx )un 口 intj; floataver=1 ;for(j=0;j<3;j+)aver=xj*aver; return (aver);运行结果为:ave= 36.0011.#include<stdio.h>main()inta23=1,2,3,4,5,6;intb32,i,j;专业资料整理WOR/式for(i=0;i<=1;i+)for(j=0;j<=2;j+)bji=aij;专业资料整理WOR/式)for(i=0;i<=2;i+)for(j=0;j<=1;j+)printf("%5d",bij);)运行结果为:14253

31、612 .#include<stdio.h>f(int b,int n)int i,r;r=1;for(i=0;i<=n;i+) r=r*bi;return(r);)main()intx,a=1,2,3,4,5,6,7,8,9);x=f(a,3);printf("dH',x);)运行结果为:2413 .#include"stdio.h"main()intj,k;staticintx44,y44;for(j=0;j<4;j+)for(k=j;k<4;k+) xjk=j+k;for(j=0;j<4;j+)for(k=j;k&

32、lt;4;k+) ykj=xjk;for(j=0;j<4;j+)for(k=0;k<4;k+) printf("%d,",yjk);专业资料整理WOR/式)运行结果为:0,0,0,0,1,2,0,0,2,3,4,0,3,4,5,6专业资料整理WOR/式函数1.#include<stdio.h>intSub(inta,intb)return(a-b);main()int x,y,result=0;scanf("%d,%d",&x,&y);result=Sub(x,y);printf("result=%dn&

33、quot;,result);当从键盘输入:6,3运行结果为:result=32.#include<stdio.h>int min(intx,inty)int m;if (x>y)m=x;elsem=y;return(m) ;main() int a=3,b=5,abmin ;abmin=min(a,b) ;printf( "minis%d , abmin);运行结果为:min is 53.#include<stdio.h>func(intx)x=10;printf( "d,",x);main()intx=20;func(x);prin

34、tf("d ,x);专业资料整理WOR/式运行结果为:10,20专业资料整理WOR/式4.#include<stdio.h>intm=4;intfunc(intx,inty)intm=1;return(x*y-m);main()inta=2,b=3;printf("%d'n",m);printf("%dn",func(a,b)/m);运行结果为:415.#include<stdio.h>intfun(inta,intb)if(a>b) return(a);else return(b);main()intx=

35、15,y=8,r;r=fun(x,y);printf("r=%dn",r);运行结果为:r=156.#include<stdio.h>intfac(intn)intf=1,i;for(i=1;i<=n;i+)f=f*i;return(f);main()intj,s;scanf("d ,&j);专业资料整理WOR/式s=fac(j);printf("%d!=%dn",j,s);)3!=6如果从键盘输入3,运行结果为:专业资料整理WOR/式7.#include<stdio.h>unsignedfun6(unsi

36、gnednum)unsignedk=1;dok*=num%10;num/=10;while(num);returnk;main()unsignedn=26;printf("dn",fun6(n);运行结果为:128.#include<stdio.h>intmax(intx,inty);main()inta,b,ca=7;b=8;c=max(a,b);printf("Maxis%d",c);max(intx,inty)intz;z=x>y?x:y;return(z);运行结果为:Maxis8专业资料整理WOR/式指针1.#include&

37、lt;stdio.h>main( )int x=10,20,30,40,50);int *p;p=x;printf("d ,*(p+2);)运行结果为:302.#include<stdio.h>main()chars= " abcdefg ;char*p;p=s;printf("ch=%cn",*(p+5);)运行结果为:ch=f3.#include<stdio.h>main()inta=1,2,3,4,5);intx,y,*p ;p=a;x=*(p+2);printf("%d : %dn",*p,x)&

38、#39;)运行结果为:1:34.#include<stdio.h>main() int arr=30,25,20,15,10,5, *p=arr;p+;printf("dH' ,*(p+3);专业资料整理WOR/式运行结果为:10专业资料整理WOR/式5.#include<stdio.h>main() int a=1,2,3,4,5,6);int x,y,*p;p=&a0;x=*(p+2);y=*(p+4);,*P,x,y);printf( " n)运行结果为:*p=1,x=3,y=56.#include<stdio.h>

39、main()staticchara= " Program ,*ptr; for(ptr=a,ptr<a+7;ptr+=2)putchar(*ptr);)运行结果为:Prom7.#include<stdio.h> chars= " ABCD ; main()char*p;for(p=s;p<s+4;p+) printf("c%srT ,*p,p);) 运行结果为: A ABCD8. BCDC CDD D专业资料整理WOR/式结构体1.#include<stdio.h>structstintx;inty;a2=5,7,2,9;mai

40、n()printf("%dn",a0.y*a1.x);运行结果是:142.#include<stdio.h>main()structstuintnum;chara5;floatscore;m=1234, " wang ,89.5;printf( " %d,%s,%f ,m.num,m.a,m.score);运行结果是:1234,wang,89.53.#include<stdio.h>struct cmplxintx;int y;cnum2=1,3,2,7;main()printf("dn",cnum0.y*cn

41、um1.x);运行结果是:6专业资料整理WOR/式4.#include<stdio.h>structabcinta,b,c;main()structabc s2=1,2,3,4,5,6;intt;t=s0.a+s1.b;printf("%d'n",t);运行结果是:6专业资料整理WOR/式三、程序填空1 .输入一个字符,判断该字符是数字、字母、空格还是其他字符.main()charch;ch=getchar();if( ch>=?a?&&ch<=?z?11ch>=?A?&&ch<=?Z?)print

42、f("ItisanEnglishcharactern");elseif( ch>=?0?&&ch<=?9?)printf("Itisadigitcharactern");elseif( ch=,?)printf("Itisaspacecharactern");elseprintf("Itisothercharactern"); 2 .以下程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数.用输 0来结束输入,用 i,j来放统计数,请填空完成程序. 入voidmain()

43、intn,i=0,j=0;printf( "inputainteger,0forendn " );scanf( "d ,&n);-while ( n 或 n!=0) .if(n>0)i=i+1;else j=j+1; prin "i=%4d,j=%4d ,i,j); tf( n3 .编程计算1 +3+5+?+101的值#include<stdio.h>voidmain()inti,sum=0;for(i=1; i<=101;i+)sum=sum+i;printf("sum=%dn",sum);专业资料整

44、理WOR/式专业资料整理WOR/式4 .编程计算1 +3+5?+99的值main() int i,sum=0;i=1;while( i<100) sum=sum+i; ;i+printf("sum=%dn",sum);5 .从键盘输入一个字符,判断它是否是英文字母.#include<stdio.h>voidmain()char c;printf("inputacharacter:");c=getchar();,z?) printf("Yes'n");if(c>= ,A? &&c<=,Z? 11c>=,a?&&c<=else printf("No");6 .下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空.#include<stdio.h>void main()inta10,i,x;printf( " input10integers : " );for(i=0;i<10;i+)scanf( &qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论