1:若有以下定义和语句:
union data
{int i;
char c;
float f;
}a;
int n;
则以下语句正确的是( )。
1.a=5; 2.a={2,’a’,1.2}; 3.printf(“%d\n”,a); 4.n=a;
2:在C语言中,要求运算数必须是整形的运算符是( ).
1./
2.++
3.!=
4.%
3:C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是:_____
1.用户指定传递方式
2.无传递
3.单向值传递
4.地址传递
4:以下有关宏替换的叙述不正确的是( )。
1.宏替换不占用运行时间
2.宏名无类型
3.宏替换知识字符替换
4.宏名必须用大写字母表示
5:若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( ).
1.A%2==1
2.!(入%2==0)
3.!(A%2)
4.A%2
6:下面程序段的运行结果是( )。
char *s=”abcde”;
s+=2; printf(“%d”,s);
1.cde
2.字符’c’
3.字符’c’的地址
4.无确定的输出结果
7:设有如下定义:
struct sk
{int n;
float x;
}data,*p;
若要使P指向data中的n域, 正确的负值语句的是( )。
1.p=&data.n;
2.*p=data.n;
3.p=(struct sk*)&data.n;
4.p=(struct sk*)data.n;
8:利用fseek函数的正确调用形式是( ).
1.改变文件的位置指针
2.文件的顺序读写
3.文件的随机读写
4.以上答案均正确
9:C语言结构体类型变量在程序执行期间( ).
1.所有成员一直驻留在内存中
2.只有一个成员驻留在内存中
3.部分成员驻留在内存中
4.没有成员驻留在内存中
10:若有代数式3ae/bc,则不正确的C语言表达式是( )
1.a/b/c*e*3
2.3*a*e/b/c
3.3*a*e/b*c
4.a*e/c/b*3
11:以下程序段( ).
x=-??1; do{x=x*x;} while(! x);
1.是死循环
2.循环执行二次
3.循环执行二次
4.有语法错误
12:以下程序的运行结果是( ).
#include “stdio.h”
main()
{struct data
{int year,month,day;
}today;
printf(“%d\n”,sizeof(struct data));
}
1.6
2.8
3.10
4.12