三九宝宝网宝宝百科宝宝知识

全国计算机等级考试二级C模拟试题

11月11日 编辑 39baobao.com

[全国翻译资格考二级笔译模拟试题1]Part A pulsory Translation (必译题)(30 points) The Dreadlock Deadlock In the fall of 1993 Christopher Polk transferred from FedEx‘s hub in Indianapolis to take o...+阅读

(18)以下程序段的输出结果是

int a=1234;

printf("%2d\n",a);

A)12

B)34

C)1234

D)提示出错、无结果

【答案】C

【解析】 printf()函数的输出格式,当整数的值超过格式要求输出范围时,原样输出。本题中要求输出两个有效数字,而实际上a有4个有效数字,故原样输出,输出1234。

(19)以下选项中不属于C语言的类型的是

A)signed short int

B)unsigned long int

C)unsigned int

D)long short

【答案】D

【解析】在选项中很明显选项A为无符号短整型,选项B为无符号长整型,选项C为无符号整型,而选项D的类型在C语言中不存在。

(20)若有说明语句:int a,b,c,*d=则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是

A)scanf("%d%d%d",

B)scanf("%d%d%d",

D)scanf("%d%d%d",a,b,*d);

【答案】A

【解析】scanf()函数有两个参数,第一个参数是输入格式字符串,第二个参数是输入变量地址列表。输入格式字符串主要由“%”符号和格式字符组成。地址列表是由多个地址组成的。选项B中d已经为地址,不应在加上求地址符号“选项C中,a和b都为变量不是地址,应该在a和b之前加上求地址符号“,则能给a赋40000的正确语句是

A)a=20000+20000;

B)a=4000*10;

C)a=30000+10000;

D)a=4000L*10L;

【答案】D

【解析】由于20000+20000、4000*10及30000+10000都是整型表达式,故运算的结果仍然是整型,表达式运算的结果超出了整型数据的范围,不正确。而D是长整型运算,不会超出长整型的范围。

(22)以下叙述正确的是

A)可以把define和if定义为用户标识符

B)可以把define定义为用户标识符,但不能把if定义为用户标识符

C)可以把if定义为用户标识符,但不能把define定义为用户标识符

D)define和if都不能定义为用户标识符

【答案】B

【解析】C语言中的保留字,而define不是保留字。用户标识符不允许使用保留字。

(23)若定义:int a=511,*b=则printf("%d\n",*b);的输出结果为

A)无确定值

B)a的地址

C)512

D)511

【答案】D

【解析】本题中先定义了一个int型的变量a并赋初值为511,接着定义了一个指向a的指针变量b,在printf()函数的输出格式中,是输出*b,即输出指针所指向变量a的值为511,因此输出511。

(24)以下程序的输出结果是

main()

{ int a=5,b=4,c=6,d;

printf(("%d\n",d=a>b?)(a>c? a:c):(b));

}

A)5

B)4

C)6

D)不确定

【答案】C

【解析】在C语言中问号表达式(如:a>c?a:c;)的计算规则为:如果a>c为真,那么表达式的值为a的值;否则表达式的值为c的值。本题中的printf()函数中的输出表达式,首先计算括号内的条件表达式,它的值为6(a>c?a:c中a>c即5>6为假故该表达式的值为c的值即为6),然后再计算外面表达式(等价于a>b?6:b)的值,同理可得该表达式的值为6,将值6赋值给d,因此最后输出该表达式的值为6。

(25)以下程序中,while循环的循环次数是

main()

{ int i=0;

while (i<10)

{ if(i<1)continue;

if(i==5) break;

i++;

}

}

A)1

B)10

C)6

D)死循环,不能确定次数

【答案】D

【解析】break语句只能在循环体和switch语句体内使用,当break出现在switch语句体内时,其作用只是跳出该switch语句体。当break出现在循环体中,但不在switch语句体内时,则在执行break后,跳出本层循环体。而continue语句的作用是结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本程序中,变量i的初始值为0,判断while后面括号内表达式的值为真,执行循环体内的if语句,判断if后面括号内表达式的值为真,执行“continue;”语句。因continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判断,所以i的值未发生变化,循环条件仍然为真,if语句也仍然成立,因此循环将无止境地进行下去。

(26)以下程序的输出结果是

main()

{ int a=0,i;

for(i=1;i<5;i++)

{ switch(i)

{ case 0:

case 3:a+=2;

case 1:

case 2:a+=3;

default:a+=5;

}

}

printf("%d\n",a);

}

A)31

B)13

C)10

D)20

【答案】A

【解析】switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行该case分支的语句。如果在该语句的后面没有break语句,则按顺序继续执行下一个case分支,直到遇到break语句或switch多分支语句结束,在switch语句中,break语句的作用是使流程跳出switch结构,终止switch语句的执行。在本题中,因为每个case语句后面都没有break语句,所以,第一轮循环(i==1)执行过后a的值为8,第2轮(i==2)执行过后a的值为16,第3轮(i==3)执行过后a的值为26,第4轮(i==4)执行过后a的值为31,然后执行“i++”语句,这时循环条件为假,循环结束。

(27)以下程序的输出结果是

main()

{ int a=4,b=5,c=0,d;

d=!a

printf("%d\n",d);

}

A)1

B)0

C)非0的数

D)-1

【答案】A

【解析】由于单目运算符优先级高于“

while (i<20)

{ for(;;)

{ if((i%10)==0) break;

else i--;

}

i+=11;a+=i;

}

printf("%d\n",a);

}

A)21

B)32

C)33

D)11

【答案】B

【解析】break语句只能在循环体和switch语句体内使用。

本题程序为在while循环中嵌套for循环。先看内层for循环,该循环的3个表达式全部省略,循环条件始终为真,但循环体内的break语句为终止循环的条件。首先,由初始条件判断外层循环while括号内表达式的值,该值为真,执行本次while循环,即执行循环体内的if语句,判断该表达式后面括号里表达式的值为真,执行break语句,跳出内层循环,执行下面的语句,此时i和a的值均变为11;回到外层循环,判断表达式“i<20”仍为真,执行内层循环语句,此时if条件不满足,执行else语句,i的值为10,继续内层循环,if语句条件满足,执行break语句,跳出内层循环,执行下面的语句后,i和a的值分别是21和32。再判断外层循环的条件为假,结束循环。 (29)以下程序的输出结果是

char cchar(char ch)

{

if(ch>='A'

return ch;

}

main()

{ char s[]="ABC+abc=defDEF",*p=s;

while(*p)

{ *p=cchar(*p);

p++;

}

printf("%s\n",s);

}

A)abd+ABC=DEFdef

B)abc+abc=defdef

C)abcABCDEFdef

D)abcabcdefdef

【答案】B

【解析】本题首先定义了一个函数cchar(),有一个字符型参数ch。在函数中首先判断该字符是否为大写字母,如果是则把它转换成小写字符再赋值给ch,把ch作为函数值返回。在主函数中定义了一个字符数组s并初始化,然后定义了一个指针变量并使它指向数组s。接着通过一个while循环利用指针变量p,依次取出字符数组的字符(直到遇到字符串结束标志'\0'),并调用cchar()函数,把大写字母转换成小写字母,其他字符不变。最后输出字符数组为s中的内容,结果为“abc+abc=defdef”。

(30)以下程序的输出结果是

int f()

{ static int i=0;

int s=1;

s+=i;i++;

return s;

}

main()

{ int i,a=0;

for(i=0;i<5;i++)a+=f();

printf("%d\n",a);

}

A)20

B)24

C)25

D)15

【答案】D

【解析】在C语言中声明为static型的变量,在整个程序运行期间,静态局部变量在内存的静态存储区中占据永久性的存储单元。即使退出函数后,下次再进入该函数时,静态局部变量仍使用原来的存储单元。由于并不释放这些存储单元,因此这些存储单元中的值得以保留;因而可以继续使用存储单元中原来的值。本题中函数f()中定义了一个static型变量i,故每调用一次函数f(),i的值加1,返回s的值等于i,在主函数中用了一个for循环,该循环执行了5次,每次都调用f()函数,将其返回值累加到变量a中,故最后a的值为1+2+3+4+5=15。

(31)以下程序段的输出结果是

char s[]="\\141\141abc\t";

printf("%d\n",strlen(s));

A)9

B)12

C)13

D)14

【答案】A

【解析】字符数组中可以存放字符串,但字符数组的长度并不是字符串的长度,字符串的长度是指字符数组中存放的有效字符个数,即'\0',之前的字符数。字符数组s中依次存放的字符是:'\\'、'1'、'4'、'1'、'\141'、'a'、'b'、'c'和'\t',和最后一个字符串结束标记'\0',故字符串的长度是9。

(32)若有以下程序

&emspinclude <stdio.h>

void f(int n);

main()

{ void f(int n);

f(5);

}

void f(int n)

{ printf("%d\n",n);}

则以下叙述中不正确的是

A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以 正确调用函数f

C)对于以上程序,编译时系统会提示出错信息;提示对f函数重复说明

D)函数f无返回值,所以可用void将其类型定义为无值型

【答案】C

【解析】若一个函数定义在主调函数之后,其返回值不是int或char型,则必须对之进行函数说明。可在函数外说明也可以在函数内说明,在函数外说明,在其后的所有函数均可调用该函数,若在函数内说明,则只能在本函数内调用该函数。函数只能定义一次,但函数说明可以出现多次。

(33)以下程序调用findmax函数返回数组中的值

findmax(int * a,int n)

{ int * p,* s;

for (p=a,s=a;p-a<n;p++)

if( ) s=p;

return(*s);

}

main()

{ int x[5]={12,21,13,6,18};

printf("%d\n",findmax(x,5));

}

在下划线处应填入的是

A)p>s

B)*p>*s

C)a[p]>a[s]

D)p-a>p-s

【答案】B

【解析】在main()函数中定义了一个具有5个元素的x数组并赋初值,然后调用findmax()函数求数组中元素的值。调用时把数组元素x的首地址,传给了形参指针变量a,把5传给形参n。在函数findmax()中定义了两种指针变量p和s,其中s用来记录元素的地址,p作为循环控制变量,表示每个元素的地址。求值的算法是先将第5个元素(用s记下它的地址)做为值,然后用值(*s)与后面的每个元素比较(*p),若后面的元素大,则用s记下它的地址,所以下划线应填“*s<*p”或“*p>*s”。

(34)以下程序的输出结果是

main()

{ char ch[3][5]={"AAAA","BBB","CC"};

printf("\"%s"\n",ch[1]);

}

A)"AAAA"

B)"BBB"

C)"BBBCC"

D)"CC"

【答案】B

【解析】二维字符数组可以看成由若干个一维字符数组组成,每行是一个一维字符数组。本题首先定义了一个数组ch[3][5],并给它们按行赋初值,即相当于给ch[0]赋值“AAAA”,给ch[1]赋值“BBB”,给ch[2]赋值“BBB”,最后输出转义字符“'\'”、ch[1]和转义字符“\”,因此输出为“BBB”。

以下为关联文档:

全国翻译资格考二级笔译模拟试题2Part B Choice of Two Translations (二选一题)(30 points) Topic 1 (选题一) Eurasians: The New Face of Asia Fusion is in, not only as an abstract fashion concept, bu...

2008年二级建造师机电安装模拟试题三、 有一个汽车装配厂招标,甲安装公司以良好的信誉和投标价格而中标。投标文件规定有些非标设备由建设单位指定的乙公司来提供,并要求甲公司配合安装,甲公司口头同意配合,并与...

全国翻译资格考二级笔译模拟试题4Section 2: Chinese-English Translation (汉译英) This section consists of two parts, Part A —— "pulsory Translation" and Part B - "Choice of Two Translations"...

全国翻译资格考二级笔译模拟试题5Part B Choice of Two Translations (二选一题) (20 points) Topic 1 (选题一) 中国画 中国画与中医、京剧在一起,被誉为中国的"三大国粹。"按内容分,主要有人物画、山水画、花...

08中考语文模拟试题一、积累与运用(22分) (一)积累(12分) 1.阅读下面一段话,请你给加点的字注音,依据拼音写出正确的汉字。(2分) 家是一个温馨( )的甜蜜的字眼。在家可以sā 娇,也可以打诨;可以舒展筋骨,也可...

一级建造师辅导通信和广电模拟试题某重点工程项目计划于2004年12月28日开工,由于工程复杂,技术难度高,一般施工队伍难以胜任,业主自行决定采取邀请招标方式。 于2004年9月8日向通过资格预审的A、B、C、D、E五家施工承...

2006考研英语考前十天冲刺模拟试题英语冲刺模拟试题 Section Ⅰ Use of English Directions: Read the following text. Choose the best word (s) for each numbered blank and mark A, B, C or D on ANSWER...

08中考语文模拟试题一、积累与运用(22分) (一)积累(12分) 1.请依据下面的拼音把正确的汉字写在方框里。(2分) 书籍,是我们了解以往时代的渠道,也是我们dòng悉难以深入的社会集团的途径。阅读不仅是有益...

全国翻译资格考二级笔译模拟试题3Part B Choice of Two Translations (二选一题)(30 points) Topic 2 (选题二) Matter Look at all the things around us: chairs, desks, cupboards, papers and pens in our...

推荐阅读
图文推荐