C语言典型试题
2013级测控技术与仪器一班复习资料
选择题
1、有以下定义:int a;long b;double x、y;,则以下选项中正确的表达式是()
A )a%(int)(x/y) B)a=x!=y C)(a*y)%b D)y=x+y=x
答案) B A中若x、y相等,分母为0,出现除0错误 ;C中double 类型不能进行取余操作;D 中赋值号“=”右侧不能是表达式
2、以下选项中能表示合法常量的是()
A)整数:1,200 B)实数:1.5E2.0 C)字符:‘\’ D)字符串:“\007”
答案)D 选项A 1200中间不能有逗号,否则编译出错; 选项B 2.0错误,必须为整数;选项C 要表示字符斜杠常量’\’应该在反斜杠前面再加上一个反斜杠
3、以下C语言用户标识符中,不合法的是()
A)_1 B)AaBc C)a_b D)a--b
答案) D
4表达式a+=a-=a=9值是()
A)9 B)-9 C)18 D0
答案)D 第一步a=9,然后计算a-a的值,并将此值赋给a,此时a=0,a+a的值赋给a.最终结果为0
5、#include<stdio.h>
main
{ int k=011;
printf(“%d\n”,k++)
}
程序运行后输出结果()
A)12 B)11 C)10 D)9
答案) D 011为八进制数,对应的十进制为9,k++;先使用k再对其加1,++k;先对k进行加1赋值给k,再使用k
6、以下选项中合法的标识符是()
A 1_1 B 1--1 C _11 D 1__
答案)C
7、若有定义语句:int x=10 ;,则表达式x-=x+x的值为()
A -20 B -10 C 0 D 10
答案)B 表达式为x-(x+x)=10-20=-10
8、C语言规定,在一个C程序中,main()函数的位置()
A 必须在系统调用的库函数之后 B 必须在程序的开头
C 必须在程序的最后 D 可以在任意位置
答案) D
9、#include<stdio.h>
main()
{ int a=1,b=0;
if(!a) b++;
else if (a==0) if (a) b+=2;
else b+=3;
pringtf (“%d\n,b”);
}
程序运行后的输出结果是()
A 0 B 1 C 2 D 3
答案) A 考查if else 语句,开始a=1,b=0;此时if(!a)不成立,转执行 else if (a==0)
由于a=1,之后的语句都不执行。所以b值不变。注意else if 语句的嵌套,else总是和最近的if成套使用
10、#include<stdio.h>
void main
{
int n=2,k=0;
while(k++&&n++>2);
printf (“%d %d\n ”,k,n);
}
程序运行后的输出结果是()
A m=6 B m=2 C m=4 D m=5
答案) D 在程序中整型变量n的初始值等于2,整型变量k的初始值等于0,在执行while语句时,由于表达式k++的值等于0,在“与”运算中,全1才是1,有0即为0 ,故“&&”后边的语句不用再判断(即不执行)所以whlie语句中条件不满足,循环语句不会执行,但变量k值加1,输出变量值分别为1、2
11、#include<stdio.h>
main(0
int y=10 ;
while (y--);
printf (“y=%d\n”,y);
}
程序执行后的输出结果是()
A y=0 B y=-1 C y=1 D while构成无限循环
答案) B while循环中每次变量y值减1,先判断y值,再将y减1,执行一次循环后,再判断y值。y值为0时退出循环,这是y值再减1 变为-1
12、#include<stdio.h>
main()
{ int a=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2 | | c--!=3)
printf(“%d,%d,%d\n”, a,b,c);
else printf(“%d,%d,%d\n”,a,b,c);
else printf(“%d,%d,%d\n”,a,b,c);
}
程序运行后输出结果是()
A 1,2,3 B 1,3,2 C 1,3,3 D 3,2,1
答案) C a,b,c,d 的初始值分别为1,2,3,0.第一个if语句中,a==1成立,但由于运算符是&&,还需判断第二个表达式,b++==2,它同时也成立,之后b=b+1,此时b=3,执行第二个if语句,此时b!=2成立,由于运算符是||,不管后面的表达式的值是不是1,其整个表达式的值总为1因此第二个表达式不执行,最后输出的值是1,3,3
13、设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其他三个不同的是()
A if(a>b)c=a,a=b,b=c; B if(a>c){c=a,a=b,b=c}
C if(a.>c)c=a;a=b;b=c D if(a>b){c=a;a=b;b=c}
答案) C (这题错了绝对说明你们基础掌握不牢,好好认真复习,加油!)
14、#include<stdio.h>
main()
{ int x=1,y=2,z=3;
if(x>y)
if(y<z) printf (“%d”,++z);
else printf(“%d”,++y);
printf(“%d\n”,x++);
}
程序运行结果是()c语言字符常量有哪些
A 331 B 41 C 2 D 1
答案) D (此题不解释)
15、以下程序运行后的输出结果是()
#include(stdio.h)
main()
{ int m=1,n=0,i=0,j=0;
switch (m)
{ case 1:
switch(n)
{ case 0: i++;break:
Case 1:j++;break;}
case 2 :i++;j++;beak;}
printf(“i=%d,j=%d\n”,i,j);
}
A i=2,j=1 B i=1,j=0 C i=1,j=1 D i=2,j=2
答案)A 本题考查switch语句的嵌套应用。m=1执行外层switch语句的case1,此时进入内层switch语句,因为n=0,执行i++,遇到break退出内层switch语句,回到外层。由于外层语句没有break语句,继续执行case2 后面的i++;j++.最后输出i=2,j=1.
16、若运行以下程序时,输入以下指定数据,则正确的运行结果是()
#include<stdio.h>
main()
{ int i;
while( (i=getchar() )!=‘\n’)
{ switch(i)
{ case’0’:
case’1’:putchar (i+4);
case’2’:putchar(i+4);break;
Case’3’:putchar(i+4);
default:putchar(i+2);break;
}
}printf(“\n”);
}
输入数据(第一列):2473<回车>
A 6688766 B 66975 C 66778777 D 668966
答案) B (亲,这个举一反三啊!)
17、下面的函数调用语句中func函数的实参个数是()
func( f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));
A 3 B 4 C 5 D 8
答案) A
18、在C程序中,下列说法正确的是()
A函数的定义和调用均不可嵌套
B函数的定义和调用均可以嵌套
C函数的定义可以嵌套,但函数的调用不可以嵌套
D函数的定义不可以嵌套,但函数的调用可以嵌套
答案) D
指针和数组,由于你们考得不深,我就没题了。以上题都是典型题,可以很好的帮你们理解并记忆相关知识点。你们能弄懂了最好,死记是没用的。我不喜欢投机取巧,如果你们抱定了作弊、死记的心,那这题,你可以选择不看。我提几点建议:
1、程序题多上机练习,运行查错。特别注意语句结尾的符号“;”不要丢;
2、大题主要还是考查循环、选择、嵌套结构的,它们的熟练运用一定要掌握,实现程序循环和判断的关键语句要到或者填出;
3、课后习题很重要,大题可能会出现在哪些习题里的。
最后,希望大家好好复习,考试全过!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论