2005年春二级C考试试卷
试题一、判断题(每小题1分,共10分)
说明:在以下提供的若干个陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。 (1) 在C语言中,常量和变量都有数据类型。
(2) C语言的运算符只有单目运算符和双目运算符两种。 (3) 若变量己正确定义,表达式x+y=z符合C语言语法。 (4) C编译器可以找出C源程序中所有的语法错误和逻辑错误。 (5) 表达式3*5/2和表达式3/2*等价。
(6) 表达式m=n++的求解顺序是先计算m=n,再计算n=n+1。 (7) 变量名fahr和Fahr代表两个不同的变量。
(8) 若表达式sizeof(unsigned)的值为2,则unsigned类型数据能表示的最大整数为
2-1。
(9) break语句只能用于循环结构中。
(10) while语句先判断循环条件,所以循环体有可能一次也不执行。 试题二、单选题(每小题2分,共20分)
(11)执行scanf(“%d%lf%d”,&money,&rate,&year), 输入(11)后,money=1000, year=3, rate=0.025.
A、1000 3 0.025 B、1000 0.025 3 C、1000,3,0.025 C、1000,0.025,3 (12)判断变量ch是英文字母的表达式为(12)。
A、('a'<=ch<='z')||('A'<=ch<='z')
B、(ch>='a' && ch<='z')&&(ch>='A' && ch<='Z') C、(ch>='a' && ch<='z')|| (ch>='A' && ch<='Z') D、('A'<=ch<='z')&&('A'<=ch<='z') (13)while((13))等价于while(!x)。
A、x==1 B、x==0 C、x!=0 D、x!=1
(14)以下程序段输出字符串str, 其中循环条件str[i]!= 0 还可以写成(14)。
char str[80];
for(i=0;str[i]!='\\0' i++) putchar(str[i]);
A、str[i]!=NULL B、i< 80 C、!(str[i]= '\\0' D、i<=80
(15)设变量定义为:int n,*p;char ch,*q,*g;,则语句(15)是不正确的。
A、p=&n;g=q=&ch; B、p=&n;q=&ch; C、p=&n;g=&ch D、p=&n;q=&ch;g=p;
16
(16)设变量定义如下,则对其中的结构分量num正确的引用是(16)。
struct student{ int num; Char name[20]; float scire;
}stud[10];
A、stud[1].num = 10; B、student.stud.num = 10; C、struct.stud.num = 10; D、struct student.num = 10; (17)对于以下递归函数f,调用函数f(2, 1 2 3)的输出结果是(17)。 void f(int n,char a,char b,char c) { if(n==1)
printf(\ else
{ f(n-1,a,c,b);
printf(\ f(n-1,c,b,a); } }
A、1->2#1->3#3->2# B、3->2#1->2#1->3# C、'1'->'3'#'3'->'2'#'1'->'2'# C、1->3#1->2#3->2# (18)下列程序段的输出结果是(18)。 int t,a[3] = {10,5,1}; int *p;
相关推荐: