C语言试卷及答案(共6页).doc
精选优质文档-倾情为你奉上一、选择题(每题2分,共40分)1、 C语言源程序的基本单位是( ) A.程序行 B.语句 C.函数 D.字符2、 C语言规定:在一个源程序中,main函数的位置( )。.必须在最开始.必须在系统调用的库函数的后面 .可以任意.必须在最后3、 在下列字符列中,合法的标识符是( ) A.p12&.aB.stud_100 C. water$12 D.88sum4、 在C语言中,要求运算的数必须是整数的运算符是( ) A./ B.! C.% D.= =5、 设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a的值是( ) A、3 B、0 C、9 D、-126、 设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a > b)&&(n=c>d)后n的值为( ) A、1 B、2 C、3 D、4 7、 执行下列程序时输入:,程序的运行结果是( ) main() int x,y; scanf(“%2d%*2c%1d”,&x,&y); printf(“%dn”,x+y); A.17 B.46 C.15 D.98、 下述程序的输出结果是( ) #include<stdio.h> void main() int x=-1,y=4; int k; k=+x<=0&&!(y-<=0); printf("%d,%d,%d",k,x,y); A.0,0,3 B.0,1,2, C.1,0,3, D.1,1,29、 为了避免嵌套的if-else语句的二义性,C语言规定else总是与( )组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( ) main()int x;scanf(“%d“,&x);if(x+>5)printf(“%d”,x);else printf(“%dn”,x-);A.7和5 B.6和3 C.7和4 D.6和411、若变量c为char类型,能正确判断出c为小写字母的表达式是( )A. 'a'<=c<= 'z' B. (c>= 'a')|(c<= 'z') C. ('a'<=c)and ('z'>=c) D. (c>= 'a')&&(c<= 'z')12、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 。 if(x>y) z=x; x=y; y=z; A.x=10, y=20, z=30 B.x=20, y=30, z=30 C.x=20, y=30, z=10 D.x=20, y=30, z=2013、以下程序的输出结果为main( )int i,f1,f2; f1=f2=1; for(i=0;i<4;i+) printf(“%d%d”,f1,f2); f1+=f2; f2+=f1; A.1 2 3 4 5 6 7 8 B.1 1 2 3 5 8 13 21 C.1 1 3 5 7 9 11 13 D.1 3 5 7 9 11 13 1514、以下程序段( )。x=-1;do x=x*x; while(! x);A.是死循环 B.循环执行二次C.循环执行一次 D.有语法错误15、执行语句 for (i=1;i+<4;) ; 后变量 i 的值是( )。A3 B4 C 5 D不定 16、在定义int a10;之后,对a的引用正确的是( )。 A.a10 B.a6.3 C.a(6) D.a10-1017、在定义int a56;后,第10个元素是( )。 A.a25 B.A24 C.a13 D.a1518、定义如下变量的数组:int i;int x33=1,2,3,4,5,6,7,8,9;则下列语句的输出结果是( )for(i=0;i<3;i+)printf(“%d”,xi2-i);A.159 B.147 C.357 D.36919、在C语言中,若对函数类型未另显示说明,则函数的隐含类型是( )类型。A.void B.double C.int D.char20、设int * p,i;以下正确的语句是( )。A.* p=10; B.i=p ; C.i=* p; D.p=2* p+1;二、填空题(每空1分,共10分)1、 结构化设计中的三种基本结构是_、_、 _ _。2、 C语言源程序文件的后缀是_,经过编译后生成文件的后缀是_,经过链接后生成文件的后缀是_。3、 定义int x,y;执行y=(x=1,+x,x+2);语句后,y的值是_。4、 若执行以下程序段: int a1,b2,m2,n2; (ma>b)&&n;则n的值是_。5、 下述语句执行后, int k=1; while (k+<10); 变量 k 的值是_。6、 定义如下变量的数组:int i;int x33=1,2,3,4,5,6,7,8,9;for(i=0;i<3;i+)printf(“%d”,xi2-i);则上列语句的输出结果是_。三、补充完整程序(每题5分,共20分)1、已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下,请填空: main() int year,leap; scanf(“%d”,&year); if( ) leap=1; else leap=0; if( ) printf(“是润年”); else printf(“不是润年”); 2、用辗转相减法求两个正整数m和n的最大公约数。main()int m,n; _; while(m-n!=0) if(m>n)_; else _;printf("gcd(m,n)=%dn",m);3、计算1+1/2+1/4+1/50的值,并显示出来。 main() int i=2; float sum=1.0; while(i<= ) sum+=1/ ; i+=2; printf(“sum=%fn”,sum); 4、利用一维数组求显示fibonacci数列的前20项,每行显示5个数,每个数宽度5位,即:0,1,1,2,3,5,8,13。main()int i; int x20=_; for(i=2;i<20;i+) _ ; for(i=0;i<20;i+) if(i%5=0)printf(“n”); _; printf(“n”);四、编程题(7+8+7+8,共30分)1、 有1、2、3、4个数字, 能组成多少个互不相同且无重复数字的三位数?都是多少?2、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求1000以内满足条件的数。3、输出打印九九乘法表。4、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。一、选择题(每题2分,共40分)1、C 2、C 3、B 4、C 5、D 6、B 7、A 8、C 9、C 10、A 11、D 12、B 13、B 14、C 15、C 16、D 17、C 18、C 19、C 20、B 二、填空题(每空1分,共10分)1、顺序结构、选择结构、循环结构 2、.c,.obj,.exe3、4 4、2 5、11 6、357三、补充完整程序(每题5分,共20分)1、 year%4=0&&year%100!=0|year%400=0 leap2、 scanf(“%d%d”,&m,&n) m=m-n n=n-m3、 50 i4、0,1 xi=ci-1+xi-2 printf(“%5d”,xi)四、编程题(7+8+7+8,共30分)1、main()int i,j,k;printf("n");for(i=1;i<5;i+)*以下为三重循环*/for(j=1;j<5;j+)for (k=1;k<5;k+)if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%dn",i,j,k);2、#include "math.h"main()long int i,x,y,z;for (i=1;i<i+) x=sqrt(i+100); /*x为加上100后开方后的结果*/y=sqrt(i+268); /*y为再加上168后开方后的结果*/if(x*x=i+100&&y*y=i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf("n%ldn",i);3、#include "stdio.h"main()int i,j,result;printf("n");for (i=1;i<10;i+) for(j=1;j<10;j+) result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/printf("n");/*每一行后换行*/4、main( )long ge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if (ge=wan&&shi=qian)/*个位等于万位并且十位等于千位*/printf("this number is a huiwenn");elseprintf("this number is not a huiwenn");专心-专注-专业