一、单项选择题(1). 下面程序运行后,文件d_f.dat的内容是(1 )。
main(){ FILE *fp; int i=10,j=20;fp=fopen("d_f.dat","w");fprintf(fp,"%d ",i);fclose(fp);fp=fopen("d_f.dat","a");fprintf("%d ",j);fclose(fp);}① 10 20 ② 20 ③ 20 10 ④ 10(2). 若有定义:enum day{sun,mon, tue, wed, thu, fri, sat} ; ,则枚举常量sun、mon的值分别为(4 )。
① 7 0 ② 1 2 ③ 7 1 ④ 0 1(3). 下列程序段运行后,表达式( 2 )的值为3。
struct point{ int x;int y;} *p;struct point a[3]={1,2,3,4,5,6};p=a;①p[3].x ②p[1].x ③ *(p+2) ④p[2].x(4). 以下程序段的运行结果是(3 )。
int x[]={2,3,4,5,6,7},*p=x;int i,s=0;for(i=1;i<5;i++) s+=p[i++];printf("%d",s);① 20 ② 14 ③ 8 ④ 6(5). C语言的函数体由( 1 )括起来。
① { } ② [ ] ③ < > ④ ( )(6). 若有定义:int x,y,z; 语句 x=(y=z=3,++y,z+=y); 运行后,x的值为(2 )。
① 7 ② 6 ③ 8 ④ 3(7). 若有定义:int x; char c='A'; 则正确的赋值表达式是( 4 )。
(说明:'A'的ASCII码的十进制值为65,'a'的ASCII码的十进制值为97)① x='ABC' ② x=c+'ABC' ③ x=c+'CBA' ④ x=c+32(8). 下面叙述错误的是( 3 )。
① C语言规定可逐个引用数组元素但不能一次引用整个数组②数组中每一个元素都属于同一个数据类型③ C语言数组长度在定义数组时可不作确定④C语言数组名称是数组在内存中的首地址(9). 以下程序的运行结果是( 4 )。
int f(int c){ c+=2;return c ;}main(){ int a=2,c=5;a=f(a);printf("%d %d \n",a ,c);}① 2 4 ② 2 5 ③ 4 4 ④ 4 5(10). C语言中,二维数组元素在内存中的存放顺序是(3)。
①由用户自己定义②按列存放③按行存放④随机存放(11). 以下程序的运行结果是( 1 )。
#define X a+bmain( ){ int a=3,b=4,s1;s1=2*X;printf("%d\n",s1);}① 10 ② 14 ③ 8 ④ 6(12). 若有定义:char str1[10],str2[10]="Fujian"; ,能将字符串"Fujian"赋给数组str1的正确语句是( 1 )。
① strcpy(str1,str2); ② strcpy(str2,str1); ③ strcopy(str1,str2);④ str1="Fujian";(13). 若有定义: int i,x; ( 3 )不是死循环。
① for( ; ;i+=2) ; ② for(i=10; ;i--) ; ③ for(x=5;x>0;x--) ; ④while(x=1) ;(14). 只能向终端输出一个字符的是( 1 )。
① putchar()函数② scanf()函数③ printf()函数④ getchar()函数(15). C语言的基本数据类型包括( 3 )。
①整型、字符型、指针型②整型、实型、逻辑型③整型、实型、字符型④整型、实型、空类型(16). 若有定义:int a,b=5; 语句a=(b/2)+b%2; 运行后,a的值为( 2 )。
① 4 ② 3 ③ 2 ④ 0(17). x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为( 3 )。
① !(x>-20) && !(x<-5) ② -5<x<-20 ③ x>-20 && x<-5 ④ -20<x<-5(18). 以下程序的运行结果是( 3 )。
void main(){int a,b=2,c=6;a=3;if(a>6)a=a+b;else if(a==6)b=a+c;elsea=b+c;printf("%d\n",a);}① 5 ② 6 ③ 8 ④ 9(19). 若有定义:int a[3][4]={{1,2},{3,4},{5,6,7}}; ,则a[1][1]的值为( 4 )。
① 2 ② 3 ③ 1 ④ 4(20). 若有定义:struct teacher{int num;char sex;int age;}teacher1;则下面叙述错误的是( 4 )。
① struct是结构类型的关键字② struct teacher是用户定义的结构类型③ num、sex、age都是结构变量teacher1的成员④ teacher1是结构类型名(21). ( 1 )是关于C语言数据类型的正确叙述。
①变量使用前应定义相应的数据类型②不允许使用空类型③枚举类型不是基本类型④数组不是构造类型(22). ( 4 )为非法的字符串常量。
① "case" ② " " ③ "056" ④ '123'(23). 若有定义:int b=-15; 则( 2 )为正确的赋值表达式。
① b=*5 ② b+=b*3 ③ *b=6 ④ b+10=-5(24). 若有定义:int a,b=6; 语句a=--b; 运行后,a、b的值分别是( 4 )。
① 6 5 ② 5 6 ③ 6 6 ④ 5 5(25). 若有定义 float x; 要从键盘输入数据6.02赋给x,则应选用( 3 )语句。
① scanf("%1.2f",&x); ② scanf("%4.2f",&x); ③ scanf("%f",&x); ④scanf("%8.2f",&x);(26). 若有定义:int a=1,b=2,c=3,d=4,t=2,k=2; 语句(t=a<b)||(k=c<d); 运行后,k的值为( 4 )。
① 0 ② 2 ③ -1 ④ 1(27). 若有定义:int a=6,b=7,k=0,t=1; 语句 (k=a<b) && (t=a==b); 运行后,k、t的值分别是( 3 )。
① 0 0 ② 1 1 ③ 1 0 ④ 0 1(28). 以下程序段运行时,若从键盘输入5,则运行结果是(4 )。
int a,y=10;scanf("%d",&a);if (a>10)y=a+6;printf("%d\n",y+a);① 10 ② 16 ③ 11 ④ 15(29). 以下程序段运行后x的值为( 1 )。
int i=0,x=2;while(i++<=5){x+=2;}① 14 ② 12 ③ 8 ④ 10(30). 以下程序段运行后x的值为(4 )。
int a[8]={1,2,3,4,5,6,7,8},i,x=0;for(i=0;i<8;i++,i++)x=x+a[i];① 20 ② 18 ③ 36 ④ 16(31). 以下程序段运行后s的值是( 2 )。
int a[3][3]={1,2,3,1,2,3,1,2,3};int i,j,s=0;for(i=0;i<3;i++)for(j=i;j<3;j++)s+=a[i][j];① 15 ② 14 ③ 13 ④ 12(32). 以下程序的运行结果是( 2 )。
int a=2,b=3;int min(int a,int b){ int c;c=a<b?a:b;return(c);}main(){ int a=4;printf("%d",min(a,b));}① 4 ② 3 ③ 2 ④ 2,3(33). 若有定义:#define PI 3,则表达式PI*2*2的值为( 2 )。
① 322 ② 12 ③ 4 ④不确定(34). 以下程序段运行后*(p+1)的值为( 2 )。
char a[]="good";char *p;p=a;① a[1]的地址② 'o' ③不确定④ 'g'(35). 以下程序段运行后x的值为( 4 )。
int a[]={1,2,3,4,5,6,7,8};int i,x,*p;x=1;p=&a[1];for(i=0;i<3;i++)x*=*(p+i);① 6 ② 1 ③ 120 ④ 24(36). 以下程序段的运行结果是( 4 )。
union{ int num1;int num2;}s;s.num1=20;s.num2=30;printf("%d",s.num1);① 20 ② 2030 ③ 50 ④ 30(37). 下面程序运行后,屏幕显示File open error!,则可能的原因是( 4 )。
#include <stdio.h>main(){FILE *fp;char str[256];fp = fopen("test.txt", "rt");if(fp==NULL){ printf("File open error!");return;}fscanf(fp,"%s",str);fclose(fp);}①当前工作目录下的test.txt文件是空文件②函数fopen()的参数是错误的③ test.txt文件已经打开④当前工作目录下没有test.txt文件(38). (1 )为正确的用户标识符。