《C语言程序设计》期末试卷.doc
C语言程序设计试卷2(使用层次或专业: 计算机)注意:将程序题中变量作相应定义及说明,取值范围及编译规则以Turbo C为准则若程序题中预留的空白不够,在试卷最后一页背面答题,请标记相应的题号题 次一二三四五六总分应得分20101010644实得分得分评卷人一、选择题(每题1分,共20分)1、各种基本数据类型的存贮空间正确的长度排列为( B ) AChar<long<int<float<double BDouble<float<long<int<char CChar<int<long<float<double DFloat<int<long<char<double2、下面的变量说明中正确的( C ) AChar:a, b, c; BChar a; b; c; CChar a, b, c; DChar a, b, c3、下列程序的输出结果是( )main( )int n; (n=6*4,n+6),n*2; printf(“n=%dn”,n); A30 B. 24 C. 60 D. 484、则下列程序的输出结果是( )int i, x33=1,2,3,4,5,6,7,8,9; for(i=0;i<3;i+) printf("%d",xi2-i); A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9 5、设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是( ) A. 0 B. 4 C. - 4 D. 26、表达式y=(13>12?15:6>7?8:9)的值为( ) A 9 B 8 C 15 D. 17、若x=5,y=3 则y*=x+5; y的值为( ) A. 10 B. 20 C. 15 D. 308、C语言的输入与输出操作是由下列哪个选项完成的( ) A输入语句 B输出语句 C输入与输出函数 D输入与输出语句9、下列程序结果是( )for(k=0;k<5;+k) if(k= = 3) continue; printf(“%d”,k); A012 B. 0124 C. 01234 D. 没有输出结果10、从循环体内某一层跳出,继续执行循环外的语句是( ) A break语句 Breturn语句 Ccontinue语句 D空语句。11、Break语句的正确的用法是( ) A无论在任何情况下,都中断程序的执行,退出到系统下一层。 B在多重循环中,只能退出最靠近的那一层循环语句。 C跳出多重循环。 D只能修改控制变量。12、若变量c为char类型,能正确判断出c为小写字母的表达式是( )A.a<=c<=z B. (c>=a) | (c<=z)C.(a<=c) and (z>=c) D. (c>=a) && (c<=z)13、设有定义:long x=-L; 则以下能够正确输出变量x值的语句是( )A.printf(“x=%dn”,x) B.printf(“x=%ldn”,x)C.printf(“x=%8dln”,x) D.printf(“x=%LDn”,x);14、设char ch=A;表达式ch!(ch>=A&&ch<=Z)?ch:(ch+32)的值是( ) AA B. a C. Z D. z15、根据C语言的语法规则,下列哪个是不合法标识符( ) AWhile B. Name C. Rern5 D. _exam16、设单精度变量f,g均为5.0,使f为10.0的表达式是( ) A.f+=g B.f-=g+5 C.f*=g-15 D.f/=g*1017、设整型变量n的值为2,执行语句“n+=n-=n*n ;”后,n的值是( ) A.0 B.4 C.4 D.218、下列不是赋值语句的是( ) AA+ B.a= = b C.a+=b D.a=119、为表示关系xyz,应使用C语言表达式( ) A(x>=y)&&(y>=z) B. (x>=y) AND (y>=z) C(x>=y>=z) D. (x>=z)&(y>=z)20、设有数组定义:char array=China;则数组所占的存贮空间为( ) A4个字节 B. 5个字节 C. 6个字节 D. 7个字节得分评卷人二、填空题(每题1分,共10分)1若有定义:char c=010;则变量c中包含的字符个数是 。2表达式7+8>2 && 25 %5的结果是 。3下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环 int n=0, ch; ch=getchar( ); while( _ ) if (ch>=0&& ch<=9) n+; c=getchar( ); 4C语言中putchar(c)函数的功能是 。5设y是int型变量,请写出判断y为奇数的关系表达式为 。6在循环中, break语句的功能是 。7数组 inta34共定义了 个数组元素。8设a=30,那么执行b=-(+a), c=-(b-)后,变量b的结果为 。9数学式子写成C语言表达式是 。10设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为 。 得分评卷人三、判断题(每题1分,共10分)1函数一般由函数的说明部分和函数体部分组成( )2C语言中数据类型只有整型、实型和字符型( )3数组的下标从1开始( )4´cd´能作为C语言合法常量( )5getchar()函数的功能是从键盘上输入一个字符串( )6用户自定义的函数中可以有多个return语句 ( ) 7构成数组的各个元素可以有不同的数据类型 ( )8C语言的数据类型只有int 型和 float 型( )9从循环体中退出只能使用goto语句( )10continue语句的作用是继续程序中的下一个循环( ) 得分评卷人四、程序阅读题(每题2分,共10分)1写出下列程序的运行结果 。main ( ) int x=10,y=10;printf("%d %dn",x-,-y); 2写出下列程序的运行结果 main( ) int j , k , p, s;s=0 ;for (j=1; j<=3; j+) p=1;for(k=1; k<=j; k+)p=p*k;s=s+p;printf("s=%dn",s);3写出下列程序的运行结果 #include<stdio.h>#define MAX_COUNT 4void fun();main()int count;for (count=1; count<=MAX_COUNT; count+) fun();void fun()static int i;i+=2; printf("%d",i);4写出下列程序的运行结果 #include<stdio.h>main()int a=3, b=2, c=1;c-=+b;b*=a+c;int b=5, c=12;c/=b*2;a-=c;printf( '%d,%d,%d,",a,b,c);a+=-c; printf( '%d,%d,%d,",a,b,c);5#include<stdio.h>#include<string.h>main()int i;char str10, temp10;gets(temp);for (i=0; i<4; i+)gets(str);if (strcmp(temp,str)<0) strcpy(temp,str);printf("%sn",temp);上述程序运行后,如果从键盘上输入(在此<CR>代表回车符):C+<CR>BASIC<CR>QuickC<CR>Ada<CR>Pascal<CR>该程序的运行结果是 得分评卷人五、程序填空题(每题3分,共6分)1用起泡法对十个数由大到小排序。main( )int a11, i, j, t; printf(“input 10 numbers: n”); for(i=1;i<11;i+) scanf(“%d”,&ai); printf(“n”); for (j=1;j<=9;j+)for(i=1; ; i+)if ( )t=ai; ai=ai+1; ; printf(“the sorted numbers: n”); for ( i=1; i<11; i+) printf(“%d”,ai);2以下程序可计算10名学生1门功课成绩的平均分,请填空。float average( float array10 )int i; float aver, sum=array0; for ( i=1; _ _;i+) sum+=_ _; aver=sum/10; return(aver); main( ) float score10, aver ; int i ; printf(“ninput 10 scores:”); for(i=0; i<10;i+) scanf(“%f”,&scorei ); aver =_ _; printf(“naverage score is %5.2fn”, aver);得分评卷人六、编程题(共4题,第1,2,3题,每题10分,第4题14分,共44分, 请将程序中的变量作相应的定义及说明,数值的取值范围以Turbo C为准则)1从键盘上输入20个元素的值存入一维数组a中,然后将下标为(1、3、5、7、9)的元素值赋值给数组b,输出数组b的内容2编程序求 3,-30,20,6,77,2,0,-4,-7,99这十个数中最大值与最小值3小天才幼儿园按如下方法依次给A,B,C,D,E五个小孩发苹果。将全部苹果的一半再加二分之一个苹果发给第一个小孩;将剩下苹果的三分之一再加三分之一个苹果发给第二个小孩;将剩下苹果的四分之一再加四分之一个苹果发给第三个小孩;将剩下苹果的五分之一再加五分之一个苹果发给第四个小孩;将最后剩下的11个苹果发给第五个小孩。每个小孩得到的苹果数均为整数。试确定原来共有多少个苹果?每个小孩各得到多少个苹果?要求结果的输出格式为:appleaA得到的苹果数,applebB得到的苹果数,applecC得到的苹果数,appledD得到的苹果数,appleeE得到的苹果数,sum苹果总数4编程验证哥德巴赫猜想之一:任何一个大于等于6的偶数可以表示为两个素数之和形式:a=b+c(其中a为大于等于6的偶数,b,c为素数,如:6=3+3 8=3+5),请注意素数的判断条件,需要被证明的偶数从键盘输入,假定C语言中长整型的取值范围无穷大(注:2008年8月, 美国加州大学洛杉矶分校的计算机专家史密斯(E.Smith)发现了现今最大的素数为第46个梅森素数,它的值为-1)