谭浩强《C程序设计考研真题答案复习笔记

资料全称:谭浩强《C程序设计》(第5版)配套题库【考研真题精选+章节题库】


谭浩强C程序设计第5版题库及答案摘录:


1以下均是合法变量名的是(??)。[武汉科技大学2019研]


A.#name total


B.node ?value_max


C._var ?long


D.stu-code a+b


【答案】B


【解析】C语言中变量名只能包含数字,字母和下划线,且只能以字母和下划线开始。A项含非法字符#,错误;C中long为关键字,变量不能以关键字命名;D中含非法字符-和+。


2以下选项中不属于C语言类型的是(??)。[武汉科技大学2019研]


A.short int


B.unsigned long int


C.char


D.bool


【答案】D


【解析】C语言中没有bool型,只有C++才有boolean型,也称bool。C语言中一般用“0”表示“假”,用“1”表示“真”。


3若有声明语句:int x; char y[20]; double z; 则正确的输入语句是(??)。[武汉科技大学2019研]


A.scanf("%d%c%le\n",&x,&y,&z);


B.scanf("%2d%s%lf",&x,&y,&z);


C.scanf("%d%s%lf",&x,y,&z);


D.scanf("%x%s%3.2f",&x,y,&z);


【答案】C


【解析】y为一维数组名,指向数组首元素的地址,因此不需要再使用取地址运算符&,AB错误;D中%3.2f表示长度为3,小数为2位,但是小数点也占一位,因此D错误,答案选C。


4若a、b和t都为int变量,则下面不能交换变量a和b值的是(??)。[武汉科技大学2019研]


A.t=a; a=b; b=t;


B.a=t; t=b; b=a;


C.t=b; b=a; a=t;


D.a=a+b; b=a-b; a=a-b;


【答案】B


【解析】B中首先把t的值赋值给了a,则a的值已经被取代了,后面执行b=a,则ab的值都等于t的值。


5若有定义:int a=1,b=2; float x=3,w; 则合法的switch语句是(??)。[武汉科技大学2019研]


A.


switch(a)


{


case 1:w=a/b; break;


case 2: w=a%b; break;


}


B.


switch(b)


{


case 1:z=a%b;


case 2: z=a/b; break;


}


C.


switch(x)


{


case 2:w=a%b; break;


case 1:w=a/b; break;


}


D.


switch(a+b);


{


case 3:


case 2:w=a%b; break;


}


【答案】A


【解析】B中,变量z未定义;C中x为浮点型,switch后面的表达式不能是浮点型,只能是整型和字符型;D中swith表达式后面不能加分号,答案选A。


6对下述程序段的描述正确的是(??)。[武汉科技大学2019研]


scanf("%d,%d",&a,&b);


if(a>b)


a=b;b=a;


else


a++; b++;


printf("a=%d,b=%d",a,b);


A.若输入4,5则输出a=5,b=6


B.若输入5,4则输出a=4,b=5


C.若输入5,4则输出a=5,b=5


D.有语法错误,不能通过编译


【答案】D


【解析】if(表达式)后面如果没有用花括号括起来,那么if的子语句只包括**条语句,即在程序中只有a=b是属于if语句块的,if和else中间隔了一条语句b=a,编译无法通过。


7以下正确的描述是(??)。[武汉科技大学2019研]


A.从多层循环嵌套中退出时,只能使用break语句


B.在循环体内使用continue和break语句,作用相同


C.只能在循环体内和switch体内使用break语句


D.continue语句的作用是结束整个循环的执行


【答案】C


【解析】从多层嵌套中退出不是只能使用break语句,也可以使用return或者程序自己执行完,A错误;在循环体内continue代表不执行该次循环中的剩余未执行语句,break代表直接跳出本层循环,BD错误,答案选C。


关键词:C程序设计考研