辽工软件学院2010年专升本C语言复习题带答案

上传人:dfg****19 文档编号:220584232 上传时间:2023-07-01 格式:DOC 页数:17 大小:145KB
收藏 版权申诉 举报 下载
辽工软件学院2010年专升本C语言复习题带答案_第1页
第1页 / 共17页
辽工软件学院2010年专升本C语言复习题带答案_第2页
第2页 / 共17页
辽工软件学院2010年专升本C语言复习题带答案_第3页
第3页 / 共17页
资源描述:

《辽工软件学院2010年专升本C语言复习题带答案》由会员分享,可在线阅读,更多相关《辽工软件学院2010年专升本C语言复习题带答案(17页珍藏版)》请在装配图网上搜索。

1、辽工软件学院2010年专升本C语言复习题一、选择题(共50题)1以下选项中合法的常量是A)10110B B)0386 C)0Xffa D)X2a22以下选项中不正确的实型常量是A) 2.607E-1 B) 0.8103e 2 C) -77.77 D)456e-23以下选项中合法的用户标识符是A)long B)_2Test C)3Dmax D)A.dat4.C语言中运算对象必需是整型的运算符是A) B) C)! D) *5.已知ch是字符型变量,以下不正确的赋值语句是A)ch=a; B)ch=a; C) ch=141; D) ch=61+3;6.下面变量定义中合法的是:A)short _a=1-

2、.1e-1; B)double b=1+5e2.5;C)long do=0xfdal; D)float 2_and=1-e-3;7若变量已正确定义,以下合法的赋值表达式是A)a=l/b=2 B)+(a+b) C)a=a/(b=5) D)y=int(a)+b8以下选项中,与k=n+完全等价的表达式是A)k=n,n=n+l B)n=n+l,k=n C)k=+n D)k+=n+19若a为int类型,且其值为3,则执行完表达式:a+=a-=a*a后,a的值是A)-3 B)9 C)-12 D)610经过下述赋值后,变量x的数据类型是int x=3; double y; y=(double)x;A)int

3、 B)char C)float D)double11. 若有说明语句int i,j;则计算表达式i=(j=3,j+,j=5,j+5)后i的值为:A)3 B)4 C)5 D)1012若a、b、c均被定义成整型并已赋大于1的值,能正确表示代数式的C语言表达式是A)1/(float)a*b*c B)1/(a*b*c)C)1.0/a/b/c D)1/a/b/(float)c13.有以下程序main()int x,y,z; x=y=1;z=x+,y+,+y;printf(“%d,%d,%dn”,x,y,z);A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,114有以下程序段,其输出结果是in

4、t a=1234;printf(“%2dn”,a);A)12 B)34 C)1234 D)输出宽度不足、无结果15.设有定义:int a; float b; 执行scanf(“%2d%f”,&a,&b);语句时,若从键盘输入876 543.0,a和b的值分别是A)876和543.000000 B)87 和6.000000C)87和543.0000000 D)76和543.000000016.有以下程序main() int a=0,b=0;/* a=10; b=20;*/ printf(“a+b=%dn”,a+b);程序运行后的输出结果是A)a+b=0 B)a+b=30 C)30 D)a+b=2

5、017设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是A) a&b B) a=b C) a|b+c&b-c D) !(a7) n-; printf(%dn,n);22.有以下程序: main() int t,a=2,b=3,c=-2; while(abc) t=a; a=b; b=t; c+; printf(d,d,d,a,b,c); 程序的输出结果是 A)2,3,0 B)3,2,0 C)3,2,-1 D)2,3,123不能与do-while语句中的(E)等价的表达式是 A) (!E=0) B)(E0|E0) C) (E=0) D) (E!=0)24有

6、以下程序: main() int x=3,y; do y=-x; if(!y)printf(x); else printf(y); while(x); 程序的输出结果是:A)xyx B)yyx C)yxx D)yxy 25.有以下程序main() int k=5;while(-k)printf(“%d”,k-=3);printf(“n”);执行后的输出结果是A)1 B)2 C)4 D)死循环 26.有以下程序main() int i;for(i=1;i=40;i+) if(i+%5=0) if(+i%8=0)printf(“%d”,i);printf(“n”);执行后的输出结果是A)5 B)2

7、4 C)32 D)4027下面程序的功能是计算正整数234的各位数字之和。 main() int n,sum=O;n=234;while(n) sum=sum+n%10; n=_ ; printf(sum=%d,sum); 请把适当的选项填在下划线处。 A)n/100 B)n/10 C)n%100 D)n%1028.以下函数的返回值类型是A)与参数x的类型相同 B) void类型 C) int类型 D) 无法确定ff(float x)printf(%dn,x*x);29 在C语言中,形参的缺省存储类是A)static B)register C)auto D)extern30以下程序的输出结果是

8、A)11 B)20 C)21 D)31func(int a,int b) int c;c = a+b; return c;main() int x = 6,y = 7,z = 8,r; r=func(x-,y+,x+y),z-); printf(%dn,r);31.若有定义:int x,*pb;则以下正确的赋值表达式是A)pb=&x B)pb=x C)*pb=&x D)*pb=*x32对于基类型相同的两个指针变量之间,不能进行的运算是A) B)= C)+ D)-33若有以下定义和语句:int *p,*q,i,j;p=&i;q=&j;则能通过键盘给i和j输入数据的语句是A)scanf(dd,p,

9、q); B)scanf(dd,i,j);C)scanf(dd,*p,*q); D)scanf(%d%d,&p,&q);34.若有以下定义语句:int a10=1,2,3,4,5,6,7,8,9,10;则对a数组元素正确的引用是A)a10 B)a(a3-5) C)aa9 D)aa4+435.要求定义具有80个、char类型元素的一维数组,错误的定义语句是A)#define N 80 B)int N=80;char sN; char sN;C)#define N 40 D)char s40+40;char s2*N; 36.以下程序段给数组所有元素输入数据,应在下划线处填入的是A) a+(i+)

10、B)&ai+1 C)a+i D)&a+imain() int a10,i=0; while(i10) scanf(%d,_); 37有以下程序 main() int p8=11,12,13,14,15,16,17,18,i=0,j=0; while(i+7) if(pi%2) j+=pi; printf(%dn,j); 程序运行后的输出结果是 A)42 B)45 C)56 D)60 38.以下程序的输出结果是A)17 B)18 C)19 D)20main() int a=2,4,6,8,10,y=l,x,*p;p=&a1; for(x=0;k3;x+) y+=*(p+x); printf(%d

11、n,y);39若有以下程序:void fun(int a,int n) int i,j; for(i=0;in;i+) printf(%d,ai);main() int i,a=1,2,3,4,5,6,7,8,9,1; fun(&a4,5);A)12345 B)4567891 C)56789 D)4567840以下正确的定义语句是A)int n=5,ann; B)int a3=1,2,3,4,5,6;C)int a3; D)int a=1,2,3,4,5,6;41.有以下程序main()int i,t3=9,8,7,6,5,4,3,2,1;for(i=0;i2)return(fib(n-1)+

12、fib(n-2); else return(2);main() printf(%ldn,fib(6);47以下程序的输出结果是A)1 B)2 C)7 D)10int m=13;int fun2(int x,int y) int m=3; return(x*y-m);main() int a=7,b=5; printf(“%dn”,fun2(a,b)/m);48. 以下程序的输出结果是A)8,17 B)8,16 C)8,20 D)8,8main() int k=4,m=1,p; p=func(k,m); printf(“%d,”,p); p=func(k,m);printf(“%dn”,p);f

13、unc(int a,int b) static int m,i=2; i+=m+1; m=i+a+b;return(m);49以下程序中的for循环执行的次数是A)5 B)6 C)8 D)9#define N 2#define M N+1#define NUM (M+1)*M/2main() int i; for(i=1;ib; printf(“%xn”,c);A)10 B)f C)2 D)16二程序填空题(17题)1.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句_ 【1】 _。printf(“a=%d,b=%d”,

14、a,b);2.以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件:a+bc,a+cb,b+ca。 请填空。main()float a,b,c;scanf(“%f%f%f”,&a,&b,&c);if(_【1】 a+bc&b+ca&c+ab _)printf(“YESn”);/*a,b,c能构成三角形*/else printf(“NOn”);/*a,b,c不能构成三角形*/3输入任一字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。请在

15、_内填入正确内容。main( )char ch;scanf(“%c”,&ch);if( 【1】 ch=A&ch=a&ch=z ) 【2】ch=ch-32 ;printf(“%c”,ch); 4输入一个正整数n,输出2/1+3/2+5/3+的前20项之和,保留2位小数(该序列从第二项起,每一项的分子是前一项的分子与分母之和,分母是前一项的分子。)#include stdio.hmain()float m=2,n=1,sum=0,t;int i=1;for(;i=20;i+)sum+=m/n;t=m;【1】m=m+n;n=t;printf(%f,sum);5用/4=1-1/3+1/5-1/7+公式

16、求的近似值,直到某一项的绝对值小于10-6为止#includemain() int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; while( 【1】 fabs(t)=1e-6 ) pi=pi+t;n=n+2;_【2】s=-s_;t=s/n;pi=pi*4;printf(“pi=%fn”,pi);6判断m是否素数 main() int m,i,k; scanf(“%d”,&m); for(i=2;i=m)printf(“%d是一个素数n”,m); else printf(“%d不是一个素数n”,m);7通过调用函数求a+b的和。 main() float add(f

17、loat x,float y); float a,b,c; scanf(“%f,%f”,&a,&b); c=_【1】_add(a,b)_; printf(“%f”,c);float add(float x,float y) float z; z=x+y; return z;8将Fibonacci数列前15项放入一个一维数组中(fib0=1,fib1=1),并计算其中奇数之和。main() int fib15,i,s=0;fib0=1;fib1=1;for(i=2;i15;i+) 【1】 fibi=fibi-1+fibi-2 ;for(i=0;i15;i+)if( 【2】 fibi%2 )s=s

18、+fibi;printf(%dn,s);9给出以下形式数据,计算各行之和,并存入一个一维数组中。main()int a33=1,2,4,6,1,5,8,0,0,b3=0;int i,j;for(i=0;i3;i+)for(j=0;j3;j+) 【1】 bi+=aij ;for(i=0;i3;i+)printf(%6d, 【2】bi );10打印以下的杨辉三角形(要求打印出10行)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1.main() int a1010,i,j;for(i=0;i=9;i+) ai0=1;_ 【1】aii=1_;for(i=2;i=9;i+)

19、 for(j=1;j=i-1;j+) aij=_【2】_ai-1j+ai-1j-1_;for(i=0;i=9;i+) for(j=0;j=i;j+) printf(%5d,aij); printf(n); 11.用起泡法对个数排序(由大到小)。 main() int a10,i,j,t;for(i=0;i10;i+) scanf(“%d”,&ai);for(i=0;i=8;i+) for(j=0;j=8-i;j+) if(_【1】_ajaj+1_) t = aj;aj = aj+1;aj+1 = t;for(j=0;j=0&ai=9_) putchar(ai); i+;13.有一个3*4的矩阵

20、,求出其中的最大的那个元素的值,以及其所在的行号和列号。main() int i,j,row=0,colum=0,max;static int a34=1,2,3,4,5,6,7,8,-10,10,-5,2max=a00;for(i=0;i=2;i+) for(j=0;j=3;j+) if(_【1】_maxaij_) max=aij;row=i;colum=j;printf(max=%d,row=%d,colum=%dn,max,row,colum);14. 以下程序的功能是:对输入的一行字符中的数字字符按它们的字面值累加,输出此累加和。例如,输入的一行字符是:ab34dh8u,输出值应当是1

21、5。请填空。#include #include main() char ch; int a,s;_【1】s=0_; while(ch=getchar()_【2】!=n_) if(isdigit(ch) a=_【3】_ch-0_; s+=a; printf(“s=%dnn”,s);15.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。 main() int t=0,s=0,i; for( i=1; i=5; i+) t=i+【1】s*10 ; s=s+t; printf(s=%dn,s); 三程序分析题(共15题)1main( ) int x = 10,y; y = 5

22、 + (x + + , x + 8 , + + x ) ;printf ( %d , %d , x ,y ) ; 答案:12,172main( ) int n=0,m=1,x=2;if(!n) x-=1;if(m) x-=2;if(x) x-=3;printf(%dn,x);答案:-43main( ) int a,b,x=10,y=9;a=(-x= =y+)?- -x:+y;b= y;printf(“%d,%dn”,a,b);答案:8,104.main() int a=2,b=-1,c=2;if(ab)if(b0|+b0) +c;printf(“na=%d,b=%d,c=%d”,a,b,c);

23、答案:a=1,b=0,c=16main( ) int x=0,y=2,z=3; switch(x) case 0: switch(y= =2) case 1:printf(“*”);break; case 2:printf(“%”);break; case 1: switch(z) case 1: printf(“$”);case 2: printf(“*”);default: printf(“#”); 答案:*#7main() int x,y;for(y=1,x=1;y=10) break;if(x%2=1) x+=5;continue;x-=3; printf(“x=%d,y=%dn”,x

24、,y); 答案:x=10,y=68main() inti,j,sum; for(i=1;i6;i+) sum=0;for(j=1;j0)fun(k-1); printf(“%d”,k);main() fun(5);答案:01234512、 fun(int x) static int a=3; a=a+x; return a; main() int k=2,m=1,n; n=fun(k); n=fun(m); printf(“%dn”,n); 答案:613有以下程序,程序的运行结果是void fun2(char a,char b)printf(“%c%c”,a,b);char a=A;b=B;v

25、oid fun1()a=C;b=D;main() fun1();printf(“%c%c”,a,b);fun2(E,F);答案:CDEF14若有以下程序,程序执行后的输出结果是define N 50void fun(int a,int n,int m) int i,j; for(i=n;im;i+)ai-1=ai;main() int i,aN=1,2,3,4,5,6; fun(a,4,10); for(i=0;i6;i+) printf(“%d”,ai);答案:12356015#include main()int a3=1,2;int i,j;for(i=0;i3;i+)for(j=0;j3

26、;j+)ai=aj+1;printf(n%d,ai);答案:随机数四程序设计题(共10题)1计算函数 用scanf函数输入x值,输出y值。答案:#include stdio.hmain()float x,y;scanf(%f,&x);if(x=1&x10) y=2*x-1;else y=3*x-11;printf(%fn,y);2计算1!+2!+3!+ +10! 答案:#include stdio.hmain()long i,t=1,sum=0;for(i=1;i=10;i+)t=t*i;sum=sum+t;printf(sum=%ld,sum);3打印出三位数中的所有的水仙花数。所谓“水仙花

27、数”是指一个三位数,其各位数字立方和等于该数本身。例如153是一个“水仙花数”,因为153=13+53+33答案:#include stdio.hmain()long i,a,b,c;for(i=100;i=999;i+)a=i/100;b=i/10%10;c=i%10;if(i=a*a*a+b*b*b+c*c*c)printf(%5d,i);4求1-3+5-7+.-99+101的和答案:#include stdio.hmain()int i,sum=0,s=1;for(i=1;i=0)if(a%2=0)sum+=a;scanf(%d,&a);printf(sum=%dn,sum);6已知二维

28、数组形式如下:求主对角线上元素之和。#include stdio.hmain()int a44=5,9,10,12,4,6,7,8,11,23,20,1,3,2,40,14,sum=0,i; for(i=0;i4;i+)sum+=aii;printf(sum=%dn,sum);7已知一个具有10个元素的数组,输出最小的数组元素值。答案:#include stdio.hmain()int a10,min,i; for(i=0;i10;i+)scanf(%d,&ai);min=a0;for(i=1;iai)min=ai;printf(min=%dn,min);8将二维数组a的行和列元素互换,存到二维数组b中。答案:#include stdio.hmain()int a34=1,2,3,4,5,6,7,8,9,10,11,12,b43,i,j; for(i=0;i3;i+)for(j=0;j4;j+)bji=aij;for(i=0;i4;i+)for(j=0;j3;j+)printf(%d ,bij);printf(n);9输出下列图形*答案:#include stdio.hmain()int i,j,k; for(i=1;i=4;i+)for(j=1;j=4-i;j+)printf( ); for(k=1;k=0&ai=9) putchar(ai);i+;17

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!