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

下载本文档

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

文档简介

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

2、、循环D) C程序从main函数开始执行F列正确的标识符是(C )A.-a1B.ai下列C语言用户标识符中合法的是(A)3axB)x C)caseD)-e2下列四组选项中,正确的A) %xB)5.8、下列四组字符串中都可以用作A、print _3ddb8aBcC、str_1Cpppow while9. C语言中的简单数据类型包括(A、整型、实型、逻辑型C、整型、字符型、逻辑型10. 在C语言程序中,表达式A)2.5B)2C.a2_iB )E)unionD.i nt tC语言标识符是(Ca+bC)C语言程序中的标识符的是(,one half start$itB、 lamD、Pxq)B、整型、D、

3、整型、)a123My-book line#D)123)3paiHis.age实型、逻辑型、字符型实型、字符型的结果是_CD)311.如果int a=3,b=4 ;则条件表达式ab? a:b的值是 _A_ A) 3B) 4C) 0D) 112 .若 int x=2,y=3,z=4则表达式 xage D) (*p).age33. 设有如下定义:struck sk int a;float b;data;int *p;若要使P指向data中的a域,正确的赋值语句是 _CA) p=&a;B) p=data.a; C) p=&data.a;D)*p=data.a;34. 设有以下说明语句:typedef

4、struct stu int a;float b; stutype;则下面叙述中错误的是(D )。A、struct是结构类型的关键字B、struct stu是用户定义的结构类型C、a和b都是结构成员名D、stutype是用户定义的结构体变量名35 . 语句 int *p;说明了C _。A) p是指向一维数组的指针B) p是指向函数的指针,该函数返回一 int型数据C) p是指向int型数据的指针D) p是函数名,该函数返回一指向int型数据的指针36. 下列不正确的定义是(A )。A. int *p=&i,i;B.i nt *p,i;C .int i,*p=&i;D.i nt i,*p;37.

5、 若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是:(D )A) p=qB) *p=*q C) n=*qD) p=n38 .有语句:int a10,;则_B_是对指针变量p的正确定义和初始化。A)in t p=*a;B)i nt *p=a; C)i nt p=&a;D)i nt *p=&a;39. 若有说明语句“ int a5,*p=a; ” ,则对数组元素的正确引用是(C )。A.apB.paC.*(p+2)D.p+240. 有如下程序int a10=1,2,3,4,5,6,7,8,9,10,*P=a;则数值为9的表达式是_BA) *P+9B) *(P+8)C) *P+

6、=9D) P+841. 在C语言中,以 _D_作为字符串结束标志A) n B) C) 0 D) 042. 下列数据中属于“字符串常量”的是(A )。A. “a”B.ABCC. abcO D. a43. 已知char x=hello, y=h,e,a,b,e;,则关于两个数组长度的正确描述是B_.A)相同 B)x大于y C)x小于yD)以上答案都不对44. 下面各函数中能实现打开文件功能的是AA) fope nB) fgetcC) fputc D) fclose45. 下列语句中,把变量fp说明为一个文件型指针的是(A )。A) FILE *fp;B) FILE fp;C) file *fp;D

7、) file fp;46 .以读写方式打开一个已有的文本文件file1,并且FILE *fp,下面fopen函数正确的调用方式是(B )。A. fp=fopen( “Ie1 ”,“r”)B. fp=fopen( “Ie1 ”,“r+ ” )C. fp=fopen( “file1 ”,“ rb ” )D. fp=fopen( “Ie1 ”,“ w ”)读程序基本输入输出及流程控制1.#i nclude main () int a=1,b=3,c=5;if (c=a+b)prin tf(yesn);elseprin tf( non);运行结果为:no2.#i nclude main () int

8、a=12, b= -34, c=56, min=0;mi n=a;if(mi nb)mi n=b;if(mi nc)min=c;printf(min=%d, min);运行结果为:min=-343.#i nclude main () int x=2,y= _1,z=5;if(xy)if(y0)z=0;elsez=z+1;printf(“ n” ;4.#i nclude main () float a,b,c,t;a=3;b=7;c=1;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;prin tf(%5.2f,%5.2f,%5.2f,

9、a,b,c);运行结果为:1.00,2.00,7.005.#i nclude mai n () float c=3.0 , d=4.0;if ( cd ) c=5.0;elseif ( c=d ) c=6.0;else c=7.0;printf (“ n1f ,c );运行结果为:7.06.#i nclude main () int m;scan f(%d, & m);if (m = 0) if (m%2 = 0)prin tf(%d is a positive evenn, m);elseprin tf(%d is a positive oddn, m);else if (m % 2 = 0

10、) printf(%d is a negative evenn, m);elseprintf(%d is a negative oddn, m); 若键入9,则运行结果为:-9 is a negative odd7.#i nclude main () int num=O ;while(num=2) num+; printf(%dn,num) ; 运行结果为:1238.#i nclude mai n() int sum=10 ,n=1;while( n3)sum=su m-n;n+; printf( “ %d,%d ,n,sum);运行结果为:3,79.#i nclude main () int

11、 nu m,c;scan f(%d, &n um);doc=n um%10;prin tf(%d,c);while( nu m/=10)0);prin tf(n ”);从键盘输入23,则运行结果为:3210#i nclude main () int s=0,a=5 ,n;scan f(%d,&n);do s+=1;a=a-2; while(a!=n);printf(%d, %dn,s,a);若输入的值1,运行结果为:2,111.#i nclude stdio.hmain ()char c;c=getchar();while(c!=?)putchar(c); c=getchar(); 如果从键盘

12、输入 abcde ? fgh (回车)运行结果为:abcde12 .#i nclude main () char c;while(c=getchar()!= $) if( A =c&cZ) putchar(c);else if( a =c&c=z ) putchar(c-32); 当输入为ab*AB%cd#CD$ 时,运行结果为:ABABCDCD13.#i nclude main () int x, y =0;for(x=1;x=10)break;y=y+x;printf( “ %d %d ,y,x);运行结果为:10514.#in clude mai n() char ch; ch=getc

13、har(); switch(ch) case A :printf(“ C ,A );case B:printf(“ C ,B ); breakdefault: printf(“”,” other ”); 当从键盘输入字母A时,运行结果为:AB15.#i nclude mai n() int a=1,b=0 ;scanf( “ d,&a);switch(a) case 1: b=1; break ;case 2: b=2 ; break ;default : b=10; prin tf(%d , b);若键盘输入5,运行结果为:1016.#i nclude mai n()_ char grade

14、= C;switch(grade) case A:printf(“ 90 );case B,:printf(“ 00 );caseC:printf(“ 70 );case D:printf(“ 60 ); break;case E:printf(“60default : printf(“ error!);运行结果为:70-8060-7017.#i nclude main () int y=9;for(;y0;y-)if(y%3=0) prin tf(%d”,);con ti nue;运行结果为:85218.#i nclude main () int i,sum=O; i=1;do sum=su

15、m+i; i+; while(i=10);printf( “ d ,sum);运行结果为:5519.#i nclude #defi ne N 4main () int i;int x1=1,x2=2;prin tf(n);for(i=1;i=N;i+) prin tf(%4d%4d,x1,x2);if(i%2=0)prin tf(n ”);x1=x1+x2;x2=x2+x1;运行结果为:1235813 213420#i nclude mai n() int x, y;for(x=30, y=0; x=10, y10; x-, y+)x/=2, y+=2;printf( “x=%d,y=%dn”

16、 ,x,y);运行结果为:x=0,y=1221.#i nclude #defi ne N 4mai n() int i,j;for(i=1;i=N;i+) for(j=1;ji;j+) printf(” ”);prin tf(*);prin tf(n);运行结果为:数组1.#i nclude main () int i, a10;for(i=9;i=0;i-) ai=10-i;printf( “ %d%d% ,a2,a5,a8);运行结果为:8522.#i nclude main () int i,a 6;for (i=0; i=0 ; i-)prin tf(%3d,ai);运行结果为:543

17、2103.#i nclude mai n() int i,k,a10,p3;k=5 ;for(i=0 ; i10 ; i+)ai=i ;for(i=0 ; i3 ; i+)pi=ai*(i+1);for(i=0 ; i3 ; i+)k+=pi*2 ; prin tf(%dn,k);运行结果为:214.#i nclude int m33=1,2,3;int n33=1,2 ,3;mai n() printf( %d, ”,m10+n00); printf(%dn ”,m01+n10);运行结果为:3,05.#i nclude main () int i;int x33=1,2,3,4,5,6,7

18、,8,9;for (i=1; i3; i+)prin tf(%d,xi3-i);运行结果为:6 86.#i nclude mai n() int n33, i, j ;for(i=0 ; i3 ; i+ )for(j=0 ; j3 ; j+ )n ij=i+j ; printf( %d ”,nij);printf(n” );运行结果为:0121 232 347.#in elude mai n() char diamond5=,: , ,:*;int i,j;for(i=0;i5;i+)for(j=0;j5;j+)printf( %c ”,diamo ndij); printf( “n ”;注:

19、“ _ ”代表一个空格。 运行结果为:8.#i nclude mai n() int i, f10; f0=f1=1;for(i=2;i10;i+) fi=fi-2+fi-1;for(i=0;i10;i+) if(i%4=0) printf(“n ”;printf( %d ”fi);运行结果为:112358132134559.#i nclude“ stdio.h ”func(int b) int j;for(j=0;j4;j+)bj=j;mai n() int a4, i;fun c(a);for(i=0; i4; i+) printf(2%”,ai);运行结果为:0 1 2 310.#i n

20、clude main ()float fun( float x);float ave,a3=4.5, 2, 4;ave=fu n (a);printf( “ ave=%2 f ” ,ave);float fun (float x)int j;float aver=1 ;for (j=0;j3;j+) aver=xj*aver;return(aver);运行结果为:ave= 36.0011.#i nclude main ()int a23=1,2,3,4,5,6;int b32,i,j;for(i=0;i=1;i+)for(j=0;j=2;j+)bji=aij;for(i=0;i=2;i+) f

21、or(j=0;j=1;j+) prin tf(%5d,bij); 运行结果为:14253612 .#i nclude f(int b,i nt n)int i,r;r=1;for (i=0;i=n ;i+) r=r*bi;return (r);main ()int x,a=1,2,3,4,5,6,7,8,9;x=f(a,3);printf(“ n” ,x); 运行结果为:2413.#i ncludestdio.hmai n()int j,k;static int x44,y44;for(j=0;j4;j+)for(k=j;k4;k+)xjk=j+k;for(j=0;j4;j+)for(k=j;

22、k4;k+)ykj=xjk;for(j=0;j4;j+)for(k=0;k4;k+)prin tf(%d,yjk);运行结果为:0,0,0,0,1,2,0,0,2,3,4,0,3,4,5,6函数1.#i nclude int Sub( int a, i nt b) return (a- b); main ()int x, y, result = 0;sca nf(%d,%d, &x,&y );result = Sub(x,y );prin tf(result = %dn ”,result);当从键盘输入:6,3运行结果为:result =32.#in elude int min( int x,

23、 int y ) int m ;if ( x y ) m = x ; elsem = y ;return(m);mai n()int a=3,b=5,abm in ;abmin);abmin = min (a,b);printf( “ min is %d , 运行结果为:min is 53.#in cludefun c(i nt x) x=10;printf( %d, ,x);mai n() int x=20;fun c(x);printf( %d ”,x);运行结果为:10, 204.#i nclude int m=4;int fun c(i nt x,i nt y) int m=1;ret

24、urn(x*y-m);main ()int a=2,b=3;prin tf(%dn,m);prin tf(%dn,fu nc(a,b)/m);运行结果为:415.#i nclude int fun (i nt a, int b) if(ab) return(a);else return(b);main () int x=15, y=8, r;r= fun (x,y);prin tf(r=%dn, r);运行结果为:r=156.#i nclude int fac(i nt n) int f=1,i;for(i=1;i=n ;i+)f=f * i;return(f);main () int j,s

25、;scanf( “ %d ,&j);s=fac(j);prin tf(%d!=%dn,j,s);3!=6如果从键盘输入3, 运行结果为:7.#i nclude un sig ned fun6(un sig ned num) un sig ned k=1;do k*=n um%10;num/=10;while( nu m); return k;main () un sig ned n=26; printf( %dn ”fun6(n);运行结果为:128.#i nclude int max(i nt x, int y);main () int a,b,ca=7;b=8; c=max(a,b);pr

26、in tf(Max is %d,c);max(i nt x, int y) int 乙 z=xy? x : y;return(z);运行结果为:Max is 8指针1.# in elude mai n () int x = 10, 20, 30, 40, 50 ; int *p ;p=x;printf (“ d , *(p+2 );运行结果为:302.#i nclude mai n() char s=” abcdefg ”;char *p;p=s;printf( “ ch=%n”,*(p+5);运行结果为:ch=f3.#in cludemai n () int a=1,2, 3, 4, 5;i

27、nt x, y, *p ;p=a ;x=*(p+2);printf(%d : %d n, *p, x);运行结果为:1:34.#in clude*p=arr;main () int arr =30,25,20,15,10,5, p+;printf(“ d ,*(p+3);运行结果为:105.#i nclude mai n() int a =1,2, 3, 4, 5, 6;int x, y, *p;p = & a0;x = *(p+2);y = *(p+4);printf( *p=%d, x=%d, y=%dn”,*p, x, y);运行结果为:*p=1,x=3, y=56.#in cludem

28、ai n() static char a =” Program ” ,*ptr;for(ptr=a, ptra+7; ptr+=2)putchar(*ptr);运行结果为:Prom7.#i nclude char s= ” ABCD ”;main () char *p;for(p=s;ps+4;p+) printf( %c %sn ”,*p,p);运行结果为:A ABCDB BCDC CDD D结构体1.#in cludestruct st int x;int y; a2=5, 7, 2, 9;main ()prin tf(%dn,aO.y*a 1.x);运行结果是:142.#in clude

29、mai n()struct stuint num;char a5;float score;m=1234, ” wang”,89.5;printf(“d,%s,%f” ,m.num,m.a,m.score);运行结果是:1234,wa ng,89.53.#in cludestruct cmplx int x;int y; cnum2=1, 3, 2, 7;mai n()printf( %dn ”, cnum0.y * cnum1.x );运行结果是:64.#i nclude struct abc int a, b, c; ;main () struct abc s2=1,2,3,4,5,6; i

30、nt t;t=s0.a+s1.b;prin tf(%d n ”,t);运行结果是:6三、程序填空1 输入一个字符,判断该字符是数字、字母、空格还是其他字符。mai n() char ch;ch=getchar();if(ch= &ch= &ch= &ch0) i= i+1;else j=j+1;printf( i=%4d,j=%4dn ”,j);3 .编程计算1 + 3+ 5+ 101的值#i nclude void mai n() int i, sum = 0;for (i = 1;i=101;i+)sum = sum + i;prin tf(sum=%dn, sum);4 .编程计算1 +

31、 3+ 5+ 99的值main () int i, sum = 0;i=1;while (i100) sum = sum + i;i+ ;prin tf(sum=%dn, sum);5 .从键盘输入一个字符,判断它是否是英文字母。#i nclude void mai n()char c;prin tf(i nput a character:);c=getchar();if(c=A &c=a &c= z ) printf(Yes n);else prin tf(No);6. 下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空。#i nclude voidmai n() int a10

32、,i,x;printf( input 10 integers :”;for(i=0;i10;i+)scanf( %d,&ai);printf( input the number you want to find x :”;scanf( %d,&x );for(i=0;i10;i+)if( x=ai)break;if( i10)printf( the pos of x is : %dn ”,i);else printf( Fan not find x ! n ”;7程序读入20个整数,统计非负数个数,并计算非负数之和。#in elude mai n() int i, a20, s, count;

33、s=co un t=0;for(i=0; i20 ; i+)scanf( %d ”&ai);for(i=0; i20; i+) if( ai0 ) continue ;s+=ai _;coun t+;printf( s=%dtcount=%dn ” s, count ”;8.输入一个正整数n (1n w 10),再输入n个整数,用选择法将它们从小到大排序后输出。#i nclude int main (void)int i, i ndex, k, n, temp; /*定义1个数组a,它有10个整型元素*/printf(“ En ter n: ”);printf(“ En ter %d in t

34、egers: , n);for(i = 0; i n; i+)scanf(%d, &ai);for(k = 0; k n-1; k+)/* 对 n 个数排序 */in dex = k;for()if( ) index = i;prin tf(After sorted:);for(i = 0; i n; i+)/*输出n个数组元素的值*/return 0;四、程序改错一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执 行结果。1 .求 1234: nmai n() long int sum;int n,i=1;scan f(%d, n);printf( n ”;whil

35、e(i n) sum=sum*i;i+;prin tf(sum=%d,sum);sum应初始化即加入sum=1第四行改为:scanf( “ %d,&n);第六行改为:while(i=n)第十行改为:prin tf(sum=%ld,sum);2 求一个数组中最大值及其下标。mai n() int max,j,m;int a5;for(j=1;j=5;j+)scanf( %d ,a);max=a0;for(j=1;jaj) max=aj;m=j;printf( 下标: dn 最大值:d ” j, max)第四行改为:for(j=0;j5;j+)第五行改为:scanf( %d ,&aj);第七行改为

36、:for(j=0;j5;j+)第八行改为:if(maxaj)第十三行改为:printf(下标:%dn最大值:%d ” m,max)3 用一个函数求两个数之和。sum(x,y) float z;z=x+y;return;main () float a,b;int c;scan f(%f,%f, &a,&b);c=sum(a,b);printf(nSum is %f,sum);第一行改为:float sum(float x, float y );第四行改为:return(z);第八行:float c;第 一行:prin tf(nSum is %f,c);4 程序读入20个整数,统计非负数个数,并计

37、算非负数之和#i nclude “ stdio.h ”main ()int i, s , count ,n=20;int anl:s=co un t=1;for( i=1, i20, i-)seanf( “ d , ai);for(i=0;i20;i+)if(ai0)break;s +=ai;coun t+;printf( “ s=%n”,s, count):.printf(.“=.%d“.Qun.t=%dD.二,SQQuni).; “答案:int a20s=co un t=0;for(i=0;i20;i-)scanf( %d ,&ai);con ti nue;5. 从键盘输入整数x的值,并输

38、出y的值.main () floatx,y;scanf( %d ”&x);y=3.5+x;printf( y=%d ”); 正确的:int x; float y;printf( y=%f ”,y);6编程计算下面分段函数,输入x,输出y| x -1 x : 0y=2x10 兰x 兰103x 11 x a 10main () int x,y;printf( “n”);seanf( “, x);if(x=0llx=10)y=2x-1;elsev=3x-1:printf(“ y=%d”y);7. 求100300间能被3整除的数的和。main () int n;long sum:for(n=100,

39、n=300, n+)if(n %3=0) sum=sum* n;printf( “ ” ,sum);8.求表达式c = . ab的值#in elude #in elude int fun (i nt x, int y);main () int a,b; float f; seanf( %d,%d ”a,b);if(ab0)fun( a,b);prin tf(”The result is:%dn”,&f) else printf( error! );fun (x, y) float result;result = sqrt(a+b);return;9、通过函数调用,求两个数之差sub(x,y) float z;z=x-y;return;main () float a,b;int c;scanf( %f,%f ”&a,&b);sub(a.b):printf( nSub is %f ”sub);五、编程

温馨提示

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

评论

0/150

提交评论