2011年期末考试C语言复习题
——沈阳工程学院
一、单项选择(每题2分,共20分)
1、下列 C 数据类型属于C语言提供的基本数据类型。 A、数组类型 B、指针类型 C、整型 D、结构体类型 2、C语言程序中,下列 B 标识符是合法。 A、scanf B、str 2 C、5a D、His.age
3、已知int a ,b;scanf(“%d%d”,&a,&b);程序运行输入a、b的值时,不能作为输入数据分隔符的是 A 。
A、逗号 B、空格 C、回车 D、[Tab]
4、C语言对嵌套IF语句的规定是:else总是和 D 配对。 A、其之前最近的IF B、第一个IF
C、缩进位置相同的IF D、其前面最近且尚未配对的IF
5、下面语句 A 是定义一个有10个INT整型元素的数组。 A、int a[10] B、int a[2,5] C、int a[] D、int *a[10]
6、已知char ch[]=”welcome”;printf(“%d”,strlen(ch));输出结果是 B 。 A、6 B、7 C、8 D、9
7、Fwirte函数的一般调用形式是 D 。 A、fwirte (buffer, count, size, fp) ; B、fwrite (fp, size, count, buffer) ; C、fwrite (fp, count, size, buffer ); D、fwrite (buffer, size, count, fp) ;
8、设int a=2,b;则执行b=a&&1;语句后,b的结果是 b 。
A、0 B、1 C、2 D、3
9、在C程序中,设一表达式中包含有int,long, unsigned和char类型的变量和数据,则表达式最后的运算结果类型是 d 。
A、int B、char C、unsigned D、long 10、下面程序段的运行结果是 b 。 main ( )
{int a=11,b=10,c=0; a/=b+(b&&c);a=a/b
printf(″%d\\n″a);}
A、0 B、1 C、1.1 D、11
11、两次运行下面程序,如果从键盘上分别输入6和4,则程序的输出结果是 C 。 main ( ) {int x;
scanf(″%d″,&x); if(x++>5) printf(″%d″,x);
else printf(″%d\\n″,x-1);}
A、7和5 B、6和3 C、7和4 D、6和4
12、若定义int x[10];则Turbo C编译系统为该数组分配 c 个字节存储单元。2*10
- 1 -
A、10 B、11 C、20 D、21 13、若有如下函数定义:
add(float x, float y) {……}
则下列说法正确的是 c 。
A.函数返回值类型不确定 B.函数返回值是float型 C.函数返回值是int型 D.函数返回值是void型 14、对于int *pa[5];的描述, d 是正确的。
A、pa是一个指向数组的指针,所指向的数组是5个int 型元素 B、pa是一个指向某数组中第5个元素的指针,该指针是int 型变量 C、pa[5]表示某个数组的第5个元素的值
D、pa是一个具有5个元素的指针数组,每一个元素是一个int 型指针
15、 对for(表达式1; ;表达式3)可理解为___b_____。 A、for(表达式1;0;表达式3;) B、for(表达式1;1;表达式3;) C、for(表达式1;表达式1;表达式3;) D、for(表达式1;表达式3;表达式3;) 16、若有说明:int a[4][4]={0} ,则下面不正确的是__A______。
A、数组a的每个元素都可得到初值0
B、二维数组a的第一维大小为1
C、因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1 D、只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 17、若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是 d 。 A、p=q; B、*p=*q; C、n=*q; D、p=n;
18、若有以下说明和定义 typedef int *INTEGER; INTEGER p,*q;
以下叙述正确的是 D 。 A、P是int型变量 B、程序中可用INTEGER代替int类型名 C、q是基类型为int的指针变量D、p是基类型为int的指针变量
19、有以下程序 main()
{ char a[ ]={?a?,?b?,?c?,?d?, ?e?, ?f?, ?g?,?\\0?}; int i,j; i=sizeof(a); j=strlen(a); printf(“%d,%d\\n”,i,j); }
程序运行后的输出结果是 b 。 A、8,8 B、8,7 C、7,8 D、9,8
20、在C程序中,可以把整型数以二进制形式存放到文件中的函数是 A 。 A、fprintf函数 B、fread函数 C、fwrite函数 D、fputc函数 21 、
22、设int a=2,b;则执行b=a&&1;语句后,b的结果是 b 。
A、0 B、1 C、2 D、3 23、以下数组定义中不正确的是 d 。 A、 int a[2][3];
- 2 -
B、 int b[][3]={0,1,2,3};
C、 int c[100][100]={0};
D、 int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
24、能正确表示a和b同时为正或同时为负的逻辑表达式是 d 。 A、(a>=0‖b>=0)&&(a<0‖b<0) B、(a>=0&&b>=0)&&(a<0&&b<0) C、(a+b>0)&&(a+b<=0)
D、a * b > 0
25、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 b 。
A、INPUT x, y, z;
B、scanf(\,&z);
C、scanf(\, z);
D、read(\
26 、在Turbo 2.0中,若定义 char c;.则变量c在内存中分配的字节数是 a 。 A、1个 B、2个 C、4个 D、8个
27、在Turbo 2.0中,若定义 int c;.则变量c在内存中分配的字节数是 b 。 A、1个 B、2个 C、4个 D、8个
28、在Turbo 2.0中,若定义 long c;.则变量c在内存中分配的字节数是 c 。 A、1个 B、2个 C、4个 D、8个 29、以下运算符中优先级最高的是 c 。
A、&& B、+、- C、( ) D、% 31、以十六进制形式输出整数的格式说明符是 c 。
A、%u B、%ld C、%X D、%o
32、以八进制形式输出整数的格式说明符是 d 。 A、%u B、%ld C、%x D、%o
33、能正确表示逻辑关系:“a≥10或 a≤0”的C语言表达式是 d 。 A、a>=10 or a<=0 B、a>=10| a<=0 C、a>=10 && a<=0 D、a>=10||a<=0 34、下列程序段的输出结果是 c 。 x=9; while(x>7)
{ printf(\
A、**** B、***
C、** D、*
35 、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 b 。 A、地址传递 B、单向值传递
C、双向值传递。即由实参传给形参,再由形参传回给实参 D、由用户指定传递方式
36、以下正确的函数形式是 d 。 A、double fun1(int x,int y) { z=x+y;
return z; }
B、fun1(int x, y)
- 3 -
{
int z; return z; }
C、int fun1(x,y) { int x,y; double z; z=x+y; return z;
}
D、double fun1(int x, int y) {
double z; z=x+y; return z;
}
37、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 b 。 A、float型 B、int型 C、long型 D、double型 38、一个C语言程序是由 b 。 A、一个主程序和若干子程序组成 B、若干函数组成 C、若干过程组成 D、若干子程序组成
39、已知:char *s=\则s所指的字符串的长度为 c 。 A、18 B、16 C、13 D、14
40、若有条件表达 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是 b 。exp :!0 0
A、 (exp= =0) B、(exp!=0) C、exp= =1 D、(exp!=1) 41、以下程序有语法性错误,有关错误原因的正确说法是 c 。 void main(void) {
int k;
void prt_char(); …… k=prt_char(G); ……
}
A、语句void prt_char();有错,它是函数调用语句,不能用void说明。 B、变量名不能使用大写字母。
C、函数原型说明和函数调用语句之间有矛盾。 D、函数名不能使用下划线。
- 4 -
相关推荐: