![]() ![]() |
|
全国计算机等级考试二级C语言之字符型数据测试 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:36:54 文章录入:杜斌 责任编辑:杜斌 | |
|
|
(1)以下叙述中正确的是 A)调用printf函数时,必须要有输出项 B)使用putchar函数时,必须在之前包含头文件stdio.h C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码 (2)有以下程序 main() { char a1=’M’, a2=’m’; printf("%c\n", (a1, a2) ); } 以下叙述中正确的是 A)程序输出大写字母M B)程序输出小写字母m C)格式说明符不足,编译出错 D)程序运行时产生出错信息 (3)有以下程序 #include <stdio.h> main() { char c1=’1’,c2=’2’; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); } 当运行时输入:a<回车> 后,以下叙述正确的是 A)变量c1被赋予字符a,c2被赋予回车符 B)程序将等待用户输入第2个字符 C)变量c1被赋予字符a,c2中仍是原有字符2 D)变量c1被赋予字符a,c2中将无确定值 (4)数字字符0的ASCII值为48,若有以下程序 main() { char a=’1’,b=’2’; printf("%c,",b++); printf("%d\n",b-a); } 程序运行后的输出结果是 A)3,2 B)50,2 C)2,2 D)2,50 (5) 有以下程序 main() { char a=’a’,b; print("%c,",++a); printf("%c\n",b=a++); } 程序运行后的输出结果是 A) b,b B) b,c C)a,b D) a,c (6) 有以下程序 main() { char a,b,c,d; scanf("%c,%c,%d,%d",&a,&b,&c,&d); printf("c,%c,%c,%c\n",a,b,c,d); } 若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是 A) 6,5,A,B B) 6,5,65,66 C) 6,5,6,5 D) 6,5,6,6 (7) 有以下程序 main( ) { char k; int I; for(i=1;i<3;i++) { scanf(“%c”,&k); switch(k) { case ‘0’: printf(“another\n”); case ‘1’: printf(“number\n”); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是 A) another B) another C) another D) number number number number number another number (8) 已定义ch为字符型变量,以下赋值语句中错误的是 A) ch="\"; B) ch=62+3; C) ch=NULL; D) ch="\xaa"; (9) 已定义c为字符型变量,则下列语句中正确的是 A) c=‘97’; B) c="97"; C) c=97; D) c="a"; (10)有以下程序段 int m=0,n=0; char c=‘a’; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入:10A10<回车>,则输出结果是: A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0
(11) 已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是 A) 字符A B)字符a C)字符e D)非法的常量 (12) 若变量a是int类型,并执行了语句:a=‘A’+1.6;,则正确的叙述是 A) a的值是字符C B) a的值是浮点型 C) 不允许字符型和浮点型相加 D) a的值是字符‘A’的ASCII值加上1。 (13) 以下选项中合法的字符常量是 A)“B” B) ‘\010’ C) 68 D) D (14) 以下程序的输出结果是 main() { char c=’z’; printf(“%c”,c-25); } A) a B) Z C) z-25 D) y (15) 以下选项中,非法的字符常量是 A) ‘\t’ B) ‘\17’ C)“n” D) ‘\xaa’ (16) 若变量c为char类型,能正确判断出c为小写字母的表达式是 A) ‘a’<=c<= ‘z’ B) (c>= ‘a’)||(c<= ‘z’) C) (‘a’<=c)and (‘z’>=c) D) (c>= ‘a’)&&(c<= ‘z’) (17) 有如下程序段 int a=14,b=15,x; char c=’A’; x=(a&&b)&&(c<’B’); 执行该程序段后,x的值为 A) ture B) false C) 0 D) 1 (18) 下列程序执行后的输出结果是 A) G B) H C) I D) J main() { int x=’f’; printf("%c \n",’A’+(x-’a’+1)); } (19) 以下程序的输出结果是 A) 编译不通过,无输出 B) aceg C) acegi D) abcdefghi main( ) { int i; for(i=’A’;i<’I’;i++,i++) printf("%c",i+32); printf(" \n"); } (20) 在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为 A) ABCdef B) abcDEF C) abc D) DEF #include<stdio,h> main() { char ch; while((ch=getchar())!=’\n’) { if(ch>=’A’ && ch<=’Z’) ch=ch+32; else if(ch>=’a’ && ch<=’z’) ch=ch-32; printf("%c",ch); } printf("\n"); }
(21) 运行以下程序后,如果从键盘上输入 china#<回车>,则输出结果为 A) 2,0 B) 5,0 C) 5,5 D) 2,5 #include<stdio,h> mair() { int v1=0,v2=0; char ch; while((ch=getchar())!=’#’) switch(ch) { case ’a’; case ’h’; default; v1++; case ’0’; v2++; } printf("%d,%d\n",v1,v2); } (22) 下列不正确的转义字符是 A) ’\\’ B) ’\" C) ’074’ D) ’\0’ (23) 在C语言中,合法的字符常量是 A) ‘\084’ B) ‘\x43’ C) ‘ab’ D) “\0” (24) 若有以下定义和语句 char c1=’b’,c2=’e’; printf("%d,%c\n",c2-c1,c2-’a’+"A"); 则输出结果是: A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定 (25) 已知字母A的ASCII码为十进制的65,下面程序的输出是 A) 67,D B) B,C C) C,D D) 不确定的值 main() { char ch1,ch2; ch1=’A’+’5’-’3’; ch2=’A’+’6’-’3’; printf("%d,%c\n",ch1,ch2);} (26) 设ch是char型变量,其值为A,且有下面的表达式: ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch 上面表达式的值是 A) A B) a C) Z D) z (27) 已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是 【27】 。 # include <stdio.h> main() { char c1=’A’, c2=’Y’; printf("%d,%d\n",c1,c2); } A) 因输出格式不合法,输出错误信息 B)65,90 C)A,Y D)65,89 (28) 有以下程序: # include<stdio.h> main() { int c; while((c=getchar())!=’\n’) { switch(c-’2’) { case 0: case 1: putchar(c+4); case 2: putchar(c+4);break; case 3: putchar(c+3); case 4: putchar(c+2);break; } } printf("\n"); } 从第一列开始输入以下数据,<CR>代表一个回车符。 2743<CR> 程序的输出结果是 【28】 。 A) 668977 B) 668966 C) 6677877 D) 6688766
二、填空题: (1)已知字母A的ASCII码为65。以下程序运行后的输出结果是 【1】 。 main() { char a, b; a=’A’+’5’-’3’; b=a+’6’-’2’ ; printf("%d %c\n", a, b); } (2)以下程序运行后的输出结果是 main() { char c1,c2; for(c1=’0’,c2=’9’;c1<c2;c1++,c2--) printf("%c%c",c1,c2); printf("\n"); } (3)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>.输出结果是 #include "stdio.h" main() { char a,b; a=getchar(); scanf("%d",&b); a=a-’A’+’0’; b=b*2; printf("%c %c\n",a,b); } (4) 已知字符A的ACSII码值为65,以下语句的输出结果是【4】 char ch=’B’; printf(“%c %d\n”,ch,ch); (5)有以下程序 #include <stdio.h> main( ) { char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-‘0’; n2=n1*10+(ch2-‘0’); printf(“%d\n”,n2); } 程序运行时输入:12<回车>,执行后输出结果是【5】 。 (6) 以下程序运行后的输出结果是 【6】 。 main() { char m; m=‘B’+32; printf("%c\n",m); } (7) 执行以下程序后,输出‘#’号的个数是 【7】 。 #include <stdio.h> main() { int i,j; for(i=1; i<5; i++) for(j=2; j<=i; j++) putchar(’#’); } (8)若有以下程序 main() { char a; a=’H’-’A’+’0’; print("%c\n",a); } 执行后的输出结果是 【8】 。 (9) 有以下程序: #include <stdio.h> main() { char c; while((c=getchar( ))!=’?’) putchar(--c); } 程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为 [9] 。 (10) 下列程序段的输出结果是 【10】 。 int n=’c’; switch(n++) { default: printf(“error”);break; case ‘a’:case ‘A’:case ‘b’:case ‘B’:printf(“good”);break; case ‘c’:case ‘C’:printf(“pass”); case ‘d’:case ‘D’:printf(“warn”); } (11) 若输入字符串:abcde<回车>,则以下while循环体将执行 [11] 次。 While((ch=getchar())==’e’) printf(“*”);
答案: 一、选择题 01) B 02) B 03) A 04) C 05) A 06) A 07) C 08) A 09) C 10) A 11) A 12) D 13) B 14) A 15) C 16) D 17) D 18) A 19) B 20) B 21) C 22) C 23) B 24) B 25) A 26) B 27) D 28) A 二、填空题 (1) 67 G (2) 0918273645 (3) 1B (4) B 66 (5) 12 (6) b (7) 6 (8) 7 (9) X (10) passwarm (11) 0 |
|
![]() ![]() |