语言期末A卷(共5页).doc
精选优质文档-倾情为你奉上南京工业职业技术学院2007/2008 第一 学期 期末考试试卷闭卷【】课程: C语言程序设计 出卷人: 杨静丽 考试类型: 开卷【 】适用班级: 信息系07级 班级 学号 姓名得分一、选择题(每题2分,共50分)1、以下所列语句中,合法的语句是_B_ 。A)a=b=58; B)k=int(a+b); C) a=58,b=5; D) -i;2、若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是 A 。A) scanf("%f",c); B) scanf("%8.4f",&c);C) scanf("%6.2f",&c); D) scanf("%8",&c); 283.1900<CR> <CR>表示回车3、若有以下程序段,其输出的结果是 B 。 int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf(“%d,%d%dn”,a,b,c);A) 0,0,10 B) 0,0,5 C)-10,3,-10 D) 3,3,-104、设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是_D_ 。A) a&&b B) a<=b C) a|b+c&&b-c D) !(a<b)&&!c|1)5、以下选项中不合法的用户标识符是 C 。A) _123 B) printf C) A$ D) Dim6、把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是 D 。A)k%2 B)k%2=1 C)(k%2)!=0 D)!k%2=17、以下定义语句中,错误的是 D 。A) int a=1,2; B) char a32; C) char s10="test" D) int n=5,an;8、以下程序段的运行结果为 A 。 char c5=d,e,g,0,h ; printf (“%s”,c ); A) deg B) deg h C)d e g D)degh9、已知有声明语句“ int x=8;”,则下列表达式中,值为2的是_B_ 。 A) x+=x-=x B) x%=x-2 C) x>8?x=0:x+ D) x/=x+x 10、逻辑“异或”运算可描述为“a xor b”,其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。以下表达式中_D_可以正确表示逻辑“异或”运算。A)a|b B)(a&&b)&&!(a|b ) C) a&&b D) (a|b ) &&! (a&&b) 11、设有声明int value=5;,则执行下列选项的赋值语句后, value的值不等于5的是_C_ 。A) value= value-0; B) value= value-0x30; C) value= value-49; D) value= value-06012、下面的for循环的循环体最多可执行_B_次。for(x=0,y=0;(y!=10)&&(x<=3);x+,y+) A)3次 B)4次 C)10次 D)0次13、以下叙述正确的是 B 。A)do_while语句构成的循环不能用其他语句构成的循环来代替。 B) do_while语句构成的循环只能用break语句退出。C)用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。 D)用do_while语句构成循环时,只有在while后的表达式为零时结束循环。14、以下程序段的输出结果是 D 。int n=10;while (n>7) n-; printf(“%dn”,n);A)10 B) 9 C)10 D) 9 8 8 9 8 9 7 8 7 7 615、以下程序段的输出结果是 A 。 main() int i; for (i=1;i<=5;i+) if (i%2) printf(“*”); else continue; printf(“#”); printf(“$n”);A) *#*#*#$ B) #*#*#*$ C)*#*#$ D) #*#*$16、以下程序段的输出结果是 C 。int x=3;do printf(“%3d”,x-=2); while (!(-x);A) 1 B) 3 0 C) 1 -2 D) 死循环17、以下函数调用语句中,含有的实参个数是 B 。 func(exp1,exp2),(exp3,exp4,exp5);A)1 B) 2 C) 4 D)518、以下程序的输出结果是 C 。 func(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);A) 11 B) 20 C) 21 D) 3119、以下程序段给数组所有元素输入数据,应在下划线处填入的是 A 。 main() int a10,i=0; while (i<10) scanf(“%d”, ); A)a+(i+) B)&ai+1 C) a+i D) &a+i20、若已定义 char ch10; 则在下面表达式中不表示ch3的地址的是B_。A) ch+3 B) ch+ C) &ch0+3 D) &ch321、有字符数组s110和s210,则正确输出语句是_C_。A)puts(s1,s2) B)printf("%s,%s",s1 ,s2 );C)puts(s1);puts(s2); D)putchar(s1,s2);22、C语言中不合法的字符串常量是 D 。A) “121” B) y= C)”nn” D)”ABCDx6d”23、以下程序的输出结果是 C 。main()int n2=0,i,j,k=2; for (i=0;i<k;i+) for (j=0;j<k;j+) nj=ni+1;printf(“%dn”,nk); A) 不确定的值 B) 3 C)2 D)124、以下数组声明语句中正确的是_D_ 。A) int n, an; B) int a ; C) int a23=1,2,3; D) int a 3=1,2,3;25、当运行以下程序时输入三行,每行都是在第一列上开始,<CR>代表Enter键;a<CR>b<CR>cdef<CR>则程序的输出结果是 C 。#include “stdio.h”#define N 6main() char cN; int i; for (i=0;i<N;i+) ci=getchar(); for (i=0;i<N;i+) putchar(ci); A)abcdef B) a C) a D) a b b b c cd cdef d e f二、填空题(每空1分,共15分)1、 C语言中用 非零/1 表示逻辑“真”,用 零 表示逻辑“假”。2、 将数学式>4改写成C语言的关系表达式或逻辑表达式:(x>=4)(x<=-4) 。3、复合语句在语法上被认为是 一条语句 。空语句的形式是 ; 。4、在C语言中整数可用 十 进制数、 八 进制数和 十六 进制数三种数制表示。5、调用C语言对字符处理的库函数时,在#include命令行中应包含的头文件是”string.h” 。6、字符串”abn012”的长度是 9 。7、执行“printf(“%d,%d”,i,j,k,m);”后在屏幕上将输出_2_个整数。8、当 return_语句被执行时,程序的执行流程无条件地从一个函数跳转到另一个函数。9、设有语句“int a=2,b=3,c=2;a+=b*=(+b-c+);”,变量b的值是_8_ 。10、C语言中形参的缺省存储类别是 auto 。11、以下程序的输出结果是 abc 。main() char s="abcdef" s3=0' printf("%sn",s);三、阅读程序题(每题4分,共20分)1、给出下面程序的运行结果: main() int i=0,sum=1; do sum+=i+; while (i<5); printf(“%dn”,sum); 2、给出下面程序的运行结果: main( ) int arr10,i,k=0;for (i=0;i<10;i+) arri=i;for (i=0;i<4;i+) k+=arri+i;printf(“%dn”,k); 3、 有以下程序 int sub(int n) return (n/10+n%10); main() int x,y; scanf("%d",&x); y=sub(sub(sub(x); printf("%dn",y); 若运行时输入:1234<回车>,程序的输出结果是 。4、以下程序的功能是计算:s=1+12+123+1234+12345。请填空。 main() int t=0,s=0,i; for( i=1; i<=5; i+) t=i+( ); s=s+t; printf("s=%dn",s); 5、以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请填空。main() float x,amax,amin; scanf(“%f”,&x); amax=x; amin=x; while ( ) if (x>amax) amax=x; if ( ) amin=x; scanf(“%f”,&x);printf(“namax=%fnamin=%fn”,amax,amin);四、编程题(15分)1、有一函数: x (x<1) y= 2x-1 (1<=x<10) 3x-11 (x>=10)写一程序,输入x值,输出y值。2、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。专心-专注-专业