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

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

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

辽工软件学院2010年专升本C语言复习题一、选择题(共50题)1.以下选项中合法的常量是A)10110BB)0386C)0XffaD)X2a22.以下选项中不正确的实型常量是A)2.607E-1B)0.8103e2C)-77.77D)456e-23.以下选项中合法的用户标识符是A)longB)_2TestC)3DmaxD)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-.1e-1;B)doubleb=1+5e2.5;C)longdo=0xfdal;D)float2_and=1-e-3;7.若变量已正确定义,以下合法的赋值表达式是A)a=l/b=2B)++(a+b)C)a=a/(b=5)D)y=int(a)+b8.以下选项中,与k=n++完全等价的表达式是A)k=n,n=n+lB)n=n+l,k=nC)k=++nD)k+=n+19.若a为int类型,且其值为3,则执行完表达式:a+=a-=a*a后,a的值是A)-3B)9C)-12D)610.经过下述赋值后,变量x的数据类型是intx=3;doubley;y=(double)x;A)intB)charC)floatD)double11.若有说明语句inti,j;则计算表达式i=(j=3,j++,j=5,j+5)后i的值为:A)3B)4C)5D)1012.若a、b、c均被定义成整型并已赋大于1的值,能正确表示代数式的C语言表达式是A)1/(float)a*b*cB)1/(a*b*c)C)1.0/a/b/cD)1/a/b/(float)c13.有以下程序main(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%dn”,x,y,z);}A)2,3,3B)2,3,2C)2,3,1D)2,2,117n14.有以下程序段,其输出结果是inta=1234;printf(“%2dn”,a);A)12B)34C)1234D)输出宽度不足、无结果15.设有定义:inta;floatb;执行scanf(“%2d%f”,&a,&b);语句时,若从键盘输入876543.0<回车>,a和b的值分别是A)876和543.000000B)87和6.000000C)87和543.0000000D)76和543.000000016.有以下程序main(){inta=0,b=0;/*a=10;b=20;*/printf(“a+b=%dn”,a+b);}程序运行后的输出结果是A)a+b=0B)a+b=30C)30D)a+b=2017.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是A)a&&bB)a<=bC)a||b+c&&b-cD)!((a7){n--;printf(″%dn″,n);}22.有以下程序:main(){intt,a=2,b=3,c=-2;while(a>b>c){t=a;a=b;b=t;c++;}printf(″%d,%d,%d″,a,b,c);}程序的输出结果是A)2,3,0B)3,2,0C)3,2,-1D)2,3,123.不能与do-while语句中的(E)等价的表达式是A)(!E==0)B)(E>0||E<0)C)(E==0)D)(E!=0)24.有以下程序:main(){intx=3,y;do{y=--x;if(!y)printf(″x″);elseprintf(″y″);}while(x);}程序的输出结果是:A)xyxB)yyxC)yxxD)yxy25.有以下程序main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“n”);}执行后的输出结果是A)1B)2C)4D)死循环26.有以下程序17nmain(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf(“%d”,i);}printf(“n”);}执行后的输出结果是A)5B)24C)32D)4027.下面程序的功能是计算正整数234的各位数字之和。main(){intn,sum=O;n=234;while(n){sum=sum+n%10;n=________;}printf(″sum=%d″,sum);}请把适当的选项填在下划线处。A)n/100B)n/10C)n%100D)n%1028.以下函数的返回值类型是A)与参数x的类型相同B)void类型C)int类型D)无法确定ff(floatx){printf(″%dn″,x*x);}29.在C语言中,形参的缺省存储类是A)staticB)registerC)autoD)extern30.以下程序的输出结果是A)11B)20C)21D)31func(inta,intb){intc;c=a+b;returnc;}main(){intx=6,y=7,z=8,r;r=func((x--,y++,x+y),z--);printf(″%dn″,r);}31.若有定义:intx,*pb;则以下正确的赋值表达式是17nA)pb=&xB)pb=xC)*pb=&xD)*pb=*x32.对于基类型相同的两个指针变量之间,不能进行的运算是A)2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf(″%ldn″,fib(6));}47.以下程序的输出结果是A)1B)2C)7D)10intm=13;17nintfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf(“%dn”,fun2(a,b)/m);}48.以下程序的输出结果是A)8,17B)8,16C)8,20D)8,8main(){intk=4,m=1,p;p=func(k,m);printf(“%d,”,p);p=func(k,m);printf(“%dn”,p);}func(inta,intb){staticintm,i=2;i+=m+1;m=i+a+b;return(m);}49.以下程序中的for循环执行的次数是A)5B)6C)8D)9#defineN2#defineMN+1#defineNUM(M+1)*M/2main(){inti;for(i=1;i<=NUM;i++);printf(“%dn”,i);}50、以下程序的输出结果是main(){chara=0xf0,b=03,c;c=~a&020>>b;printf(“%xn”,c);}A)10B)fC)2D)16二.程序填空题(17题)1.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句_【1】____。printf(“a=%d,b=%d”,a,b);2.以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件:a+b>c,a+c>b,b+c>a。请填空。main(){floata,b,c;scanf(“%f%f%f”,&a,&b,&c);17nif(__【1】a+b>c&&b+c>a&&c+a>b__)printf(“YESn”);/*a,b,c能构成三角形*/elseprintf(“NOn”);/*a,b,c不能构成三角形*/}3.输入任一字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。请在_____内填入正确内容。main(){charch;scanf(“%c”,&ch);if(【1】ch>=’A’&&ch<=‘Z’)ch=ch+32;elseif(ch>=’a’&&ch<=’z’)【2】ch=ch-32;printf(“%c”,ch);}4.输入一个正整数n,输出2/1+3/2+5/3+······的前20项之和,保留2位小数(该序列从第二项起,每一项的分子是前一项的分子与分母之和,分母是前一项的分子。)#include"stdio.h"main(){floatm=2,n=1,sum=0,t;inti=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+……公式求π的近似值,直到某一项的绝对值小于10-6为止#includemain(){ints;floatn,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(){intm,i,k;scanf(“%d”,&m);for(i=2;i=m)printf(“%d是一个素数n”,m);elseprintf(“%d不是一个素数n”,m);}7.通过调用函数求a+b的和。main(){floatadd(floatx,floaty);floata,b,c;scanf(“%f,%f”,&a,&b);c=______【1】_add(a,b)_______;printf(“%f”,c);}floatadd(floatx,floaty){floatz;z=x+y;returnz;}8.将Fibonacci数列前15项放入一个一维数组中(fib[0]=1,fib[1]=1),并计算其中奇数之和。main(){intfib[15],i,s=0;fib[0]=1;fib[1]=1;for(i=2;i<15;i++)【1】fib[i]=fib[i-1]+fib[i-2];for(i=0;i<15;i++)if(【2】fib[i]%2)s=s+fib[i];printf("%dn",s);}9.给出以下形式数据,计算各行之和,并存入一个一维数组中。main(){inta[3][3]={{1,2,4},{6,1,5},{8,0,0}},b[3]={0};inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)【1】b[i]+=a[i][j];for(i=0;i<3;i++)printf("%6d",【2】b[i]);}10.打印以下的杨辉三角形(要求打印出10行)11112113311464115101051.......................................................17n............................................................main(){inta[10][10],i,j;for(i=0;i<=9;i++){a[i][0]=1;___【1】a[i][i]=1______;}for(i=2;i<=9;i++)for(j=1;j<=i-1;j++)a[i][j]=___【2】_a[i-1][j]+a[i-1][j-1]____;for(i=0;i<=9;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("n");}}11..用起泡法对10个数排序(由大到小)。main(){inta[10],i,j,t;for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<=8;i++)for(j=0;j<=8-i;j++)if(______【1】_a[j]=’0’&&a[i]<=’9’_________________)putchar(a[i]);i++;}}13.有一个3*4的矩阵,求出其中的最大的那个元素的值,以及其所在的行号和列号。main(){inti,j,row=0,colum=0,max;staticinta[3][4]={{1,2,3,4},{5,6,7,8},{-10,10,-5,2}}max=a[0][0];17nfor(i=0;i<=2;i++)for(j=0;j<=3;j++)if(____【1】__max#includemain(){charch;inta,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(){intt=0,s=0,i;for(i=1;i<=5;i++){t=i+【1】s*10;s=s+t;}printf("s=%dn",s);}三.程序分析题(共15题)1.main(){intx=10,y;y=5+(x++,x+8,++x);printf("%d,%d",x,y);}答案:12,172.main(){intn=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf(″%dn″,x);}答案:-43.main(){inta,b,x=10,y=9;a=(--x==y++)?--x:++y;b=y;printf(“%d,%dn”,a,b);}答案:8,1017n4.main(){inta=2,b=-1,c=2;if(a0||++b>0)++c;printf(“na=%d,b=%d,c=%d”,a,b,c);}答案:a=1,b=0,c=16.main(){intx=0,y=2,z=3;switch(x){case0:switch(y==2){case1:printf(“*”);break;case2:printf(“%”);break;}case1:switch(z){case1:printf(“$”);case2:printf(“*”);default:printf(“#”);}}}答案:*#7.main(){intx,y;for(y=1,x=1;y<=50;y++){if(x>=10)break;if(x%2==1){x+=5;continue;}x-=3;}printf(“x=%d,y=%dn”,x,y);}答案:x=10,y=68.main(){ int  i ,j,  sum;  for(i=1;i<6;i++) {sum=0;for(j=1;j<=4;j++)sum+=j;}printf(“sum=%dn”,sum);17n}答案:sum=109.main(){inta=3;fun(a);printf(“%dn”,a);}fun(inta){a=a+3;printf(“%d,”,a);}答案:6,310.以下程序的输出结果是____。#include"stdio.h"funl(inta,intb){intc;a+=a;b+=b;c=fun2(a,b);returnc*c;}fun2(inta,intb){intc;c=a*b%3;returnc;}main(){intx=11,y=19;printf(“%dn”,funl(x,y));}答案:411、有以下程序,程序运行后的输出结果是fun(intk){if(k>0)fun(k-1);printf(“%d”,k);}main(){fun(5);}答案:01234512、fun(intx){staticinta=3;a=a+x;returna;}main(){intk=2,m=1,n;n=fun(k);n=fun(m);printf(“%dn”,n);}答案:617n13.有以下程序,程序的运行结果是voidfun2(chara,charb){printf(“%c%c”,a,b);}chara=‘A’;b=‘B’;voidfun1(){a=‘C’;b=‘D’;}main(){fun1();printf(“%c%c”,a,b);fun2(‘E’,‘F’);}答案:CDEF14.若有以下程序,程序执行后的输出结果是defineN50voidfun(inta[],intn,intm){inti,j;for(i=n;imain(){inta[3]={1,2};inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)a[i]=a[j]+1;printf("n%d",a[i]);}答案:随机数四.程序设计题(共10题)1.计算函数用scanf函数输入x值,输出y值。答案:#include"stdio.h"main(){floatx,y;scanf("%f",&x);if(x<1)y=x;elseif(x>=1&&x<10)y=2*x-1;elsey=3*x-11;printf("%fn",y);}17n2.计算1!+2!+3!+┅+10!答案:#include"stdio.h"main(){longi,t=1,sum=0;for(i=1;i<=10;i++){t=t*i;sum=sum+t;}printf("sum=%ld",sum);}3.打印出三位数中的所有的水仙花数。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如153是一个“水仙花数”,因为153=13+53+33答案:#include"stdio.h"main(){longi,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.h"main(){inti,sum=0,s=1;for(i=1;i<=101;i=i+2){sum+=i*s;s=-s;}printf("sum=%dn",sum);}5.从键盘输入若干个整数直到输入负数为止,统计其中的偶数之和。答案:#include"stdio.h"main()17n{inta,sum=0;scanf("%d",&a);while(a>=0){if(a%2==0)sum+=a;scanf("%d",&a);}printf("sum=%dn",sum);}6.已知二维数组形式如下:求主对角线上元素之和。#include"stdio.h"main(){inta[4][4]={5,9,10,12,4,6,7,8,11,23,20,1,3,2,40,14},sum=0,i;for(i=0;i<4;i++)sum+=a[i][i];printf("sum=%dn",sum);}7.已知一个具有10个元素的数组,输出最小的数组元素值。答案:#include"stdio.h"main(){inta[10],min,i;for(i=0;i<10;i++)scanf("%d",&a[i]);min=a[0];for(i=1;i<10;i++)if(min>a[i])min=a[i];printf("min=%dn",min);}8.将二维数组a的行和列元素互换,存到二维数组b中。答案:#include"stdio.h"main()17n{inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12,},b[4][3],i,j;for(i=0;i<3;i++)for(j=0;j<4;j++)b[j][i]=a[i][j];for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("n");}}9.输出下列图形****************答案:#include"stdio.h"main(){inti,j,k;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(k=1;k<=2*i-1;k++)printf("*");printf("n");}}10.将字符串”abc0d12ef567ghijkl”中的数字字符输出。答案:#include"stdio.h"main(){chara[]="abc0d12ef567ghijkl";inti=0;while(a[i]){if(a[i]>='0'&&a[i]<='9')putchar(a[i]);i++;}}17
查看更多

相关文章

您可能关注的文档