二级C语言分类模拟题498_第1页
二级C语言分类模拟题498_第2页
二级C语言分类模拟题498_第3页
二级C语言分类模拟题498_第4页
二级C语言分类模拟题498_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二级C语言分类模拟题498一、选择题1、有以下定义语句,编译时会出现编译错误的是 。A.chara='\x2d';B.chara='\n';C.chara='a';D.chara="aa";2、以下不合法的字符常量是 。A.'\\'B.'\"'C.'\018'D.'\xcc'3、已知大写字母“A”的ASCII码值是65,小写字母“a”的ASCII码值是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是 。A.c=('A'+c)%26-'a'B.c=c+32C.c=c-'A'+'a'D.c=(c-'A')%26+'a'4、下面选项中合法的字符常量是 。A."X"B.'X'C.'abc'D.'\'5、若有说明语句:charc='\72'; ,则变量c中存放的是 。A.2个字符B.1个字符C.3个字符D.说明语句不合法6、以下不能输出小写字母“a”的选项是 。A.printf("%c\n","a");B.printf("%c\n",'A'+32);C.putchar(97);D.putchar('a');7、若有定义语句:charc='\101'; ,则变量c在内存中占 。A.1个字节B.2个字节C.3个字节D.4个字节8、若有以下程序:#include <stdio.h>main(){charc1,c2;c1='C'+'8'-'3';c2='9'-'0';printf("%c%d\n",c1,c2);}则程序的输出结果是 。A.H'9'B.H9C.F'9'D.表达式不合法输出无定值9、有以下程序:#include <stdio.h>main(){intx=35,B;charz='B';B=((x)&&(z <'b'));printf("%d\n",B.;}程序运行后的输出结果是 。A.1B.0C.35D.66、有以下程序:#include <stdio.h>main(){charc1='A',c2='Y';printf("%d,%d\n",c1,c2);}程序的输出结果是 。A.输出格式不合法,输出出错信息B.65,89C.65,90D.A,Y、以下不是合法C语言转义字符的是 。A.'\c'B.'\a'C.'\b'D.'\r'、有以下程序:#include <stdio.h>main(){charc1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII码值为65,程序运行后的输出结果是 A.E,68B.D,69C.E,DD.输出无定值、若有定义:charc;intd; ,程序运行时输入:c=1,d=2<回车>,能把字符1输入给变量c、整数2输入给变量d的输入语句是 。A.scanf("c=%dd=%d",&c,&d);B.scanf("c=%cd=%d",&c,&d);C.scanf("c=%d,d=%d",&c,&d);D.scanf("c=%c,d=%d",&c,&d);、#include <stdio.h>main(){charc;c=getchar();do{putchar(c++);}while((c=getchar())!='#');}程序运行时从第一列开始输入:abcdefg##<回车>,则输出结果是 。A.bcdefgh$B.bcdefghC.abcdefg#D.abcdefg、有以下程序:#include <stdio.h>main(){charc;for(;(c=getchar())!='#';)putchar(++c);}执行时如输入为:abcdefg##<回车>,则输出结果是 。A.abcdefgB.bcdefgh$C.bcdefgh$$D.bcdefgh、有以下程序:#include <stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序运行后,若从键盘输入(从第1列开始):123<回车>45678<回车>则输出结果是 。A.1245B.1256C.1278D.1267、有以下程序:#include <stdio.h>main(){charc;do{c=getchar();putchar(c);}while(c!='#');printf("\n");}执行时如输入:abcdefg##<回车>,则输出结果是 。A.abcdefg#B.abcdefgC.abedefg##D.##、有如下程序:#include <stdio.h>voidget_put(){charch;ch=getchar();if(ch!='\n')get_put();putchar(ch);}main(){get_put();printf("\n");}程序运行时,输入:1234<回车>,则输出结果是 。A.1234B.4321C.4444D.1111、以下叙述中错误的是 。A.gets函数用于从终端读入字符串B.getchar函数用于从磁盘文件读入字符C.fputs函数用于把字符串输出到文件D.fwrite函数用于以二进制形式输出数据到文件、要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是 。A.while(ch=getchar()='N')printf("%c",ch);B.while((ch=getchar())!='N')printf("%c",ch);C.while(ch=getchar()=='N')printf("%c",ch);D.while((ch=getchar())=='N')printf("%c",ch);、有以下程序:#include <stdio.h>main(){chara,b,c,d;scanf("%c%c",&a,&b);c=getchar();d=getchar();printf("%c%c%c%c\n",a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符):12<CR>34<CR>则输出结果是 。A.1234B.12C.1234D.123、以下不能将键盘输入的字符串:Thisisastring<回车>读入到str中的程序段是 A.charstr[80];scanf("%s",str);B.charstr[80];inti=0;while((str[i++]=getchar())!='\n');str[i]=O;C.charstr[80];gets(str);D.charstr[80],*ps=str;do{scanf("%c",ps);}while(*ps++!='\n');*(ps)=0;、有以下程序:#include <stdio.h>main(){charc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}}printf("\n");}程序运行后从第一列开始输入以下数据:2473<回车>程序的输出结果是 。A.668977B.4444C.6677877D.68766、有如下程序:#include <stdio.h>main(){inta=0,b=1;if(a++&&b++)printf("T");elseprintf("F");printf("a=%d,b=%d\n",a,b);}程序运行后的输出结果是 。A.Ta=1,b=2B.Fa=0,b=2C.Fa=1,b=1D.Ta=0,b=1、有以下程序:#include <stdio.h>main(){intx=23;do{printf("%2d\n",x--);}while(!x);}程序的执行结果是 。A.输出321B.输出23C.不输出任何内容D.陷入无限循环、有以下程序:#include <stdio.h>main(){inta,b;for(am0;a<3;a++){scanf("%d",&b);switch(b){case1:printf("%d,",b++);case2:printf("%d,",b++);default:printf("%d,",b++);}}printf("\n");}执行时输入:123<回车>,则输出结果是 A.1,2,3,2,3,3,B.1,2,3,C.2,3,4,3,4,4,D.1,1,1,2,2,3、C语言中char类型数据占字节数为 A.1B.2C.3、有以下程序:#include <stdio.h>main(){intpassword;char*p,old_str[10]="wind";seanf("%d",&password);p=old_str;while(*p){printf("#%c",*p+password);p++;}printf("\n");}程序运行时,从键盘输入2<回车>,输出结果是 A.#y#k#p#fB.#wi#nd#C.#wi#nd#D1#2222#、有以下程序:#include <stdio.h>main(){charch='B';while(ch <'E'){printf("%d",ch-'A');ch++;}printf("\n");}程序运行后的输出结果是 A.123B.ABCC.abcD.012、有以下程序:#include <stdio.h>main(){if('\0'==0)putchar('1');if('0'==0)putchar('2');if('a' >'b')putchar('3');}程序运行后的输出结果是 A.1B.123C.23D.3、有如下程序:#include <stdio.h>#include <string.h>main(){printf("%d\n",strlen("0\t\nA011\1"));}程序运行后的输出结果是 A.8B.9C.7D.10、有以下程序:#include <stdio.h>main(){charch='M';while(ch!='K'){putchar(ch);ch--;}}程序运行后的输出结果是 A.MLB.MKC.OPD.mm、有如下程序:#include <stdio.h>main(){chara='3',b='A';inti;for(i=0;i <6;i++){if(i%3)putchar(a+i);elseputchar(b+i);}printf("\n");}程序运行后的输出结果是 A.A45D78B.ABC678C.34CD78D.34AB78二、操作题、下列给定程序中,函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9',则将'0'转换成'9','1'转换成'8','2'转换成'7'⋯'9'转换成'0';若是其他字符则保持不变,并将转换后的结果作为函数值返回。请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!#include <stdio.hfoundfound fun(charch)foundfoundif(ch>='0'&&foundfoundreturn'9'-(ch- );returnch;}main(){charc1,c2;printf("\nTheresult:\n");c1='2';c2=fun(c1);printf("c1=%cc2=%c\n",c1,c2);c1='8';c2=fun(c1);printf("c1=%cc2=%c\n",c1,c2);c1='a';c2=fun(c1);printf("c1=%cc2=%c\n",c1,c2);}(如、下列给定程序中,函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母'Z'转化为'A','z'转化为'a')(如请改正函数fun中的错误,使它能得出正确的结果。注意:不得增行或删行,也不得更改程序的结构。#include <stdlib.h >#include <stdio.h >#include <ctype.h#include <conio.hvoidfun(char*s)*found*foundwhile(*s!='@'){if(*s while(*s!='@'){if(*s >='A'&&*s<='Z'||*s{if(*s=='Z')*S='A';elseif(*s=='z')*s='a';else*s+=1;>='a'&&*s<='z')}*found}*found(*s)++;}}voidmain(){chars[80];system("CLS");<80:\n\n");<80:\n\n");printf("\nThestring:\n\n");puts(s);fun(s);printf("\n\nTheCords:\n\n");puts(s);}答案:选择题选择题1、D[解析]选项D中将字符串常量"aa"赋给字符变量a是错误的。2、C[解析]转义字符中,八进制数的表示形式为\ddd,三位八进制数表示一个ASCII字符,但是八进制中不能包含数字8,所以选项C不合法。3、A[解析]根据题意可知,小写字母比与之对应的大写字母的ASCII码值大32。选项A中字符A加上c表示的大写字符再对字母个数26取余,本身这个表达式没有任何含义,所以答案为选项A。4、B[解析]字符常量是用单引号括起来的一个字符。选项A中,使用双引号,所以是错误的;选项C中,字符常量只能是单个字符,不能是一串字符;选项D中,以反斜线“”开头的是转义字符。因此选项B正确。5、B[解析]用一对单引号括起来的单个字符为字符常量,以“”开头的转义字符也是字符常量。“”后可以为某些单个字符,也可以为八进制数或十六进制数,故c中存放的是一个字符。选项B正确。6、A[解析]字符是按照其ASCII码形式存储的,其值范围为0~255,否则不是合法的字符。printf函数格式控制符“%c”以字符形式输出数据。putchar函数将括号中参数以字符形式输出。选项A中"a"为字符串,不是单个字符,输出格式不正确,不能输出'a'。字符'a'的ASCII码值为97,字符'A'的ASCII码值为65。'A'+32即为'a',故选项B能输出'a'。选项C、D中putchar。函数参数均为字符'a',均可正确输出'a'。7、A[解析]本题考查字符变量的存储空间。每个字符变量被分配一个字节的内存空间。因此选项A正确。8、B[解析]本题考查字符变量以及printf函数相关知识。字符变量c1被赋值为'C'+'8'-'3' ,即ASCII码值的运算,67+54-49=72,即'H';字符变量c2被赋值为'9'-'0' ,但输出时,需要注意的是c1以字符变量输出,而c2是以十进制整型变量输出。因此选项B正确。9、A[解析]本题重点考查逻辑运算符和关系运算符的相关知识。已知变量x为整型变量,并赋值为35,变量z为字符型变量,并赋值为'B'。语句B=((x)&&(z<'b'));中,(x)的值为1,'B'的ASCII码值小于'b'的ASCII码值,所以(z<'b')的值也为1,1&&1结果为1。因此选项A正确。10、B[解析]本题重点考查字符变量的相关知识。分别给字符型变量a和b分别赋值为'A'和'Y',即'A'和'Y'的ASCII码值,因此输出结果为65,89,因此选项B正确。11、A[解析]C语言中,'\a'表示响铃,'\b'表示退格,'\r'表示回车不换行,故答案为选项A。12、A[解析]本题目中字符变量c1是字符'A'的ASCII码值加上4,即字符'A'往后数4个,也就是字符'E'字符变量c2是字符'A'的ASCII码值加上3,即68所对应的字符'D'。但是打印输出时,c1以“%c”的格式输出,所以是'E',c2以“%d”的格式输出,所以是68。答案为选项A。13、D[解析]scanf函数中,“%d”对应的参数是整数型地址,“%c”对应的参数为char型地址,选项A、C错误;如果输入数据之间用逗号隔开,那么输入格式串之间也应该用逗号隔开,所以选项 B错误。故答案为选项D。14、D[解析]运算符“++”放在变量后面时,先参与其他操作,再对变量+1。putchar(c++)表示先输出当前c值,再对c值+1,当输入abcdef##时,在while语句中,程序输入'#',循环退出。因此输出为abcdefg,答案为选项D。15、D[解析]for语句执行的含义是,每次把输入赋给c,如果不等于'#',则执行putchar(++c),即将当前c值在ASCII码值上+1后再输出字符型c值,c的值等于'#',则终止循环,所以输出应该是bcdefgh,答案为选项D。16、A[解析]scanf按照格式字符进行输入,所以123与回车的值分别送入了c1、c2、c3、c4变量的存储空间。getchar函数的功能是从键盘输入的字符串中读入一个字符,所以4送入了变量c5的存储空间,5送入了变量c6的存储空间。所以打印结果为1245。17、A[解析]程序执行过程为:读入一个字符存入缓存区并输出,判断字符是否为 '#',如不是,继续读入字符,直到读入的字符是'#'而退出循环,结果为abcdefg#,选项A正确。18、B[解析]在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。本题程序的执行过程为:main函数调用get_put函数,get_put函数调用getchar函数等待用户的输入,在用户输入1234<回车>的情况下,getchar首先接收字符'1'并存放在局部变量ch中,然后执行if语句,由于ch!='\n' 条件成立,所以get_put函数递归调用自己(此时尚未执行到putchar函数)在第一次递归调用get_put函数时读入字符'2',存入第一次递归调用get_put函数的局部变量ch中(此时尚未执行到第一次递归调用get_put函数的putchar函数处);在第二次递归调用get_put函数时读入字符'3',存入第二次递归调用get_put函数的局部变量ch中(此时尚未执行到第二次递归调用get_put函数的putchar函数处);在第三次递归调用get_put函数时读入字符'4',存入第三次递归调用get_put函数的局部变量ch中(此时尚未执行到第三次递归调用get_put函数的putchar函数处);在第四次递归调用get_put函数时读入回车符'\n',存入第四次递归调用get_put函数的局部变量ch中,此时因ch!='\n'条件不成立,故用putchar输出回车,结束第四次递归调用get_put函数的执行。然后返回到执行第三次递归调用get_put函数的putchar函数处,输出第三次递归调用get_put函数时的局部变量ch的值'4',结束第三次递归调用get_put函数的执行。然后返回到第二次递归调用get_put函数的putchar函数处,输出第二次递归调用get_put函数时的局部变量ch的值'3',⋯,最后输出'1',故输出结果是:<回车>4321,所以看到的就是4321。选项B正确。19、B[解析]本题考查字符处理函数和文件操作函数,属于基础知识,其中选项 B中getchar是用于从终端读入字符。答案为选项B。20、B[解析]在C语言中逻辑相等用“==”表示,“=”表示赋值,所以选项A错误。选项C、D的含义都是如果输入的字符为'N'则打印输出,所以正好和题意相反。21、D[解析]按照从键盘输入的数据可以判断字符'1'给了变量a,字符'2'给了变量b,字符<CR>给了变量c,字符'3'给了变量d。所以打印输出的结果为选项D。22、A[解析]在使用scanf函数时要注意,在输入数据时,遇到空格或按回车键或按跳格键(Tab)时认为该数据输入结束。选项A中输入“This”后有一个空格,认为数据输入结束,以后的数据不能再读入到str中。选项B中用getchar读入字符,键盘输入的所有字符均被认为是有效字符读入,用while循环控制读入,当读入字符为回车时结束读入,字符串被正确地读入到str中。选项C中用gets函数读入字符串,它读入键盘输入的所有字符,遇到回车自动结束读入,所以也能正确读入字符串到str中。选项D中用do⋯while和指针循环控制字符输入,依次判断输入字符是否为回车,若不是回车则放入字符数组中,直到读入回车符,结束循环,数组str中正确存放指定的字符串。23、A[解析]本题执行过程为:输入c='2',c-'2'=0,首先匹配case0,依次输出6,6后执行break语句,跳出分支结构;输入c='4',c-'2'=2,匹配case2,输出8,执行break语句,跳出分支结构;输入c='7',c-'2'=5,匹配default,输出9,执行break语句,跳出分支结构;输入c='3',c-'2'=1,匹配case1,依次输出7,7,执行bleak语句,跳出分支结构。输入回车,结束循环。选项A正确。24、C[解析]题目中判断if条件是否成立,a++先取值为0,则(a++&&b++)为0,且不计算b++,而后a自增得a=1,if条件不成立执行else函数体,输出“F”。最后执行语句printf("a=%d,b=%d\n",a,b); ,按照格式输出a=1,b=1。选项C正确。25、B[解析]“%2d”表示输出的整型变量占2列。程序执行过程为:输出x为23,之后x自减得x=22,!x为假(0),while条件不成立,退出循环。选项B正确。26、A[解析]本题执行过程为:输入1,匹配case1,输出1,然后执行b++得b=2,再执行下一个case的语句输出2,然后执行b++得b=3,继续执行default语句,输出3;输入2,执行case2,输出2,然后执行b++得b=3,执行default语句输出3;输入3,执行default语句输出3。选项A正确。27、A[解析]每个字符变量被分配1个字节的内存空间。因此选项A正确。28、A[解析]首先定义了一个指针p指向数组的首地址,在while语句中,执行功能是如果当前指针指向地址单元内字符不等于空字符'\0',则输出'#'和指针对应地址元素的值在ASCII码值加2后变换的字符常量,因此答案为选项A。29、A[解析]当ch<'E'成立时输出ch-'A',即输出字符的ASCII码值相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论