1.源程序编译后生成的文件是( )。
A:扩展名为obj的文件 B:扩展名为c的文件 C:扩展名为txt的文件 D:扩展名为exe的文件
答案:obj
2.以下与int *q[5]; 等价的定义语句是( )。
A:int *(q[5]); B:int *q; C:int q[5]; D:int (*q)[5];
答案:int *(q[5])
3.下面哪种情况下feof函数返回非零值?( )。
A:使用fseek之后 B:读写位置指针指向结束标志时又进行了读数据操作或读数据的尝试 C:读写位置指针指向结束标志时 D:刚打开文件时
答案:读写位置指针指向结束标志时又进行了读数据操作或读数据的尝试
4.字符串存储时的结束标志是( )。
A:‘\r’ B:‘\n’ C:‘\\’ D:‘\0’
答案:‘\0’
5.根据变量的存储类别将变为分为( )。
A:静态变量和动态变量 B:自动变量和临时变量 C:全局变量和局部变量 D:自动变量和寄存器变量
答案:静态变量和动态变量
6.程序编译连接后显示" 0 error,0 warning" 代表( )。
A:程序中没有逻辑错误 B:程序中没有语法错误 C:程序中可能存在语法错误 D:程序运行结果不会错误
答案:程序中没有语法错误
7.int n=3,x;x=n++;上面程序段执行后,x的值是( )。
A:3 B:2 C:5 D:4
答案:3
8.打开文件时若发生错误,fopen()的返回值是( )。
A:1 B:0 C:EOF D:-1
答案:0
9.关于文件操作,下面说法正确的是( )。
A:缓冲文件系统中,缓冲区须由程序员负责开辟、管理并释放 B:用fopen函数打开文件时,只能使用高级输入输出函数,用open函数打开文件时,只能使用低级输入输出函数 C:用fread、fprintf函数读写的数据是经过缓冲区的,用read、putw函数读写的数据是不经过缓冲区的 D:一个文件在内存中分配两个缓冲区:输入缓冲区和输出缓冲区
答案:用fread、fprintf函数读写的数据是经过缓冲区的,用read、putw函数读写的数据是不经过缓冲区的
10.关于指针和指针变量,以下说法正确的是( )。
A:指针是指针变量的一部分 B:指针变量是指针的一种 C:其他三种说法都不对 D:指针与指针变量是同一个概念
答案:指针变量是指针的一种
11.关于文件的读写位置指针,下面说法正确的是( )。
A:文件的读写位置指针,指向FILE型变量中的某字节 B:文件的读写位置指针,对应着下一次要读(写)的那个字节 C:文件的读写位置指针,指向文件 D:文件的读写位置指针,是个变量,用来存储缓冲区的首地址

12.int a=321,b=65536;
printf("%ld,%hd,%c\n",a,b,a);
上面程序段的运行结果是( )。
A:321000, -32767,256 B:321,0,A C:其他三个答案都不对 D:321,32767,0 13.设整数也只用一个字节存储,则整数1与字符‘1’在内存中的存储形式分别是( )。
A:00110001 00000001 B:00000001 00110001 C:00110001 00110001 D:00000001 00000001 14.是否要在写文件时对00001010进行加字节的处理,取决于( )。
A:打开方式 B:文件类型 C:文件类型和所用函数 D:所用的函数 15.关于结构定义的位置,下面说法正确的是( )。
A:结构的定义一般放在函数外面,以便增加它的生命期 B:结构的定义一般放在函数内部作为局部定义,以减少它占用内存的时间 C:结构的定义一般放在函数里,以便尽量减少它的作用域 D:结构的定义一般放在函数之外,以便增加它的作用域 16.int test()
{
int x=0 ;
static int y=5 ;
y+=++x ;
return x+y ;
}
int main()
{
test();
printf("%d\n",test()) ;
return 0;
}
上面程序段的运行结果是( )。
A:5 B:6 C:8 D:7 17.关于while(a>b>c ){…},以下说法正确的是( )。
A:循环条件有语法错误 B:当a>b且b>c时,条件成立 C:当a<b且c<0时,条件成立 D:当a>b且c>0时,条件成立 18.以下数据定义语句中,能对a进行自增运算并且自增后有意义的是( )。
A:char (*a) [3]; B:char *a[ ]={"12","ab"}; C:int b[10], *a=b; D:int a[3][2]; 19.在内存的栈区(动态存储区)分配空间的是( )。
A:全局变量 B:寄存器变量 C:局部静态变量 D:局部自动变量 20.关于函数声明,下面说法错误的是( )。
A:函数定义中包含着函数声明 B:函数不声明,系统默认它是int型 C:改变函数声明的位置不会影响程序的执行 D:函数声明必须写形参类型,除非函数不带参数 21.关于变量的存储类别和初值等问题,下面说法正确的是( )。
A:任何存储类别的变量在未赋值时,其值都是不确定的 B:局部变量说明为static,其生存期将得到延长 C:全局变量说明为static,其作用域将被扩大 D:形参可以使用的存储类别说明符与局部变量完全相同 22.关于函数调用,下面说法正确的是( )。
A:void型函数的调用不能直接出现在表达式中,也不能直接作为参数 B:函数调用不能再作为自己的参数 C:void型函数没有返回值,所以不能出现在表达式中 D:非void型函数的调用,必须出现在表达式中,或者作为参数 23.把程序分成几个函数的优点有( )。
A:符合结构化程序设计的要求 B:方便编译和调试 C:增加程序可读性 D:减少代码书写,提高代码重用率 24.若有定义int a;const int b=1;则下列表达式错误的有( )。
A:b=2 B:b=a C:b++ D:a=b 25.设指针p已正确定义,以下语句中,能动态分配的两个连续的int型变量并使p指向首变量的语句有( )。
A:p=2*(int *)malloc(sizeof(int)); B:p=(int *)malloc(2*1); C:p=(int*)calloc(2, sizeof(int)); D:p=(int *)malloc(2*sizeof(int)); 26.文件共8字节(0~7),读写位置指针指在文件的第5字节,能将它移动到第3字节的代码有( )。
A:fseek(fp,-4,2); B:rewind(fp); fseek(fp,3,0); C:fseek(fp,-2,1); D:fseek(fp,-2,0); E:fseek(fp,-5,2); 27.把程序写成若干个函数,应遵循的原则有( )。
A:每个函数都要"独立"地完成"一"项任务 B:与主调或被调函数之间的任务分配要合理 C:函数要有较高的利用率和适用性 D:函数与外界的耦合性要弱,尽量少用或不用全局变量 28.关于结构体和共用体,下面说法正确的有( )。
A:共用体变量有全局和局部之分 B:共用体定义有全局和局部之分 C:结构的定义有全局和局部之分 D:结构体数组有全局和局部之分 29.下列选项中属于正确的字符常量的有( )。
A:'\x41' B:"ABC" C:‘\80’ D:‘\101’ 30.以下与库函数strcpy(char *p, char *q)功能相等的程序段有( )。
A:strcpy2( char *p, char *q){ while((*p=*q)!='\0'){p++;q++;}} B:strcpy1(char *p, char *q){ while ((*p++=*q++)!='\0');} C:strcpy3(char *p, char *q){ while (*p++=*q++);} D:strcpy4( char *p, char *q){ while(*p) *p++=*q++;} 31.以下关于C语言描述中正确的有( )。
A:每个语句的最后必须有一个分号 B:一个C程序可以包含多个main函数 C:C语言的注释通常以"/*"开始并以"*/"结束 D:一个C程序总是从main函数开始执行 32.要想通过指针变量p访问变量a,下面代码正确的有( )。
A:int a,*p; *p=a; printf("%d",*p); B:int a,*p= printf("%d",*p); C:int a,*p=a; printf("%d",*p); D:int a,*p; p= printf("%d",*p); 33.一个被调函数(函数有形参)的执行,所包括的过程有( )。
A:执行被调函数函数体 B:传递参数 C:给形参分配空间 D:释放形参 34.以下关于宏定义的四种说法中,正确的有( )。
A:宏定义可以简化书写 B:宏定义最终还是要被换回它所代表的字符 C:有参数的宏定义,其参数不占内存空间 D:用不用宏定义,对最终的exe文件没有影响 35.设有代码:int a,*p=关于用直接寻址还是间接寻址访问a,下面说法正确的有( )。
A:在p的作用域内,可以用间接访问的方式 B:任何时候都可以直接访问a C:任何时候都可以间接访问a D:在a的作用域内,可以用直接访问的方式 36.下面4个选项中,能从文件中读取一个字符并存入char型变量的函数有( )。
A:fscanf B:fread C:fgetc D:fgets 37.以下不能正确定义二维数组的有( )。
A:int a[][3]={}; B:int a[][3]={2*3}; C:int a[][3]; D:int a[2][3]={{1},{2},{3,4}}; 38.关于变量的作用域和命名等问题,下面说法正确的有( )。
A:不同的函数中可以使用相同的变量名 B:形式参数是局部变量 C:同一个作用域内可以使用相同的变量名 D:在一个函数内定义的变量只能在本函数范围内使用 39.下面四个宏定义中,正确的有( )。
A:#define N 3; B:#define n 3ab C:#define N=2 D:define PI 3.14 40.若有定义:int b[4][6],*p,*q[4];且0≤i<4,则正确的赋值语句有( )。
A:q[i]=&b[0][0]; B:p=b[i]; C:p=b; D:q[i]=b[i]; 41.a、b、c1、c2、x、y均为整型变量,错误的switch语句有( )。
A:switch(a*2.0){ case c1:y=a+b;break; case c2:y=a-b;break; default:x=a+b;} B:switch(a*a+b*b);{ case 1:y=a+b; case 0:y=a-b;} C:swtich(a-b){ default:y=a*b;break; case 3:case 2:y=a+b;} D:swich(a+b){ case 1:y=a+b;break; case 0:y=a-b;break;} 42.#include <stdio.h>int main(){ int x,t; for(t=1;t<100;t++) { scanf("%d",&x); if(x<0) continue; printf("%d\n",t); } return 0;}对上面的程序描述错误的有( )。
A:printf函数永远也不会被执行 B:最多允许输出100个非负整数 C:当x<0时,整个循环结束 D:当x>=0时,程序没有输出 43.设有宏定义#define Num 123则代码int a=Num456相当于int a=123456( )
A:错 B:对 44.!是按位取反运算符( )
A:正确 B:错误 45.若有说明:char *language[]={“FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”}; 则language[2]的值是一个字符( )
A:对 B:错 46.#include "stdio.h"int main(int argc, char *argv[]){ int m; for (m=1; m<argc ; m++) printf("%c", *argv[m]); return 0;}假定上面程序的可执行文件名为file.exe,则在该程序所在的子目录下输入命令行:file girl boy↙后,程序的输出结果是girl boy( )
A:错 B:对 47.文件的内容是:00000010 00000001,用fread()函数读取一个短整数,则短整数的值是513( )
A:对 B:错 48.switch语句中,case和default的位置次序可以任意互换,不会影响程序的执行结果。( )
A:对 B:错 49.int a[2][3]; int *p=a[0]; p++; 以上代码运行后,p指向a[1][0]( )
A:错 B:对 50.按位或|常用来让某些位翻转( )
A:错 B:对 51.结构在内存中所占的空间大小,等于各成员所占空间大小之和(不考虑内存对齐规则)( )
A:错 B:对 52.编译能发现注释中的拼写或语法错误。( )
A:对 B:错 53.x是整型变量,j是实型变量,执行x=(int)j后,j的类型变为整型。( )
A:对 B:错 54.在main函数中定义的变量一般是全局变量( )
A:对 B:错 55.指针就是地址,地址就是指针( )
A:对 B:错 56.函数声明和函数定义的区别是,函数定义包括函数体,而函数声明没有函数体,且后面带分号.( )
A:对 B:错 57.文件的二进制内容是:00110001 00110010,用文本方式从文件中读出一个整数,则整数的值是12( )
A:错 B:对 58.c语言中,空语句表示什么都不做,因此可以省略。( )
A:对 B:错 59.一个源文件必须且只能有一个主函数。( )
A:对 B:错 60.字符数组定义后,不能用赋值语句将一字符串常量或字符数组直接赋给它( )
A:对 B:错 61.C语言规定:宏定义时,宏名必须用大写( )
A:对 B:错 62.逻辑表达式中,有些运算符可能不会执行到。( )
A:错 B:对

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(9) dxwkbang
返回
顶部