第一篇:C语言文件选择题
C语言文件选择题(答案在最后)
1、标准库函数fgets(s,n,f)的功能是
A)从文件f中读取长度为n的字符串存入指针s所指的内存
B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C)从文件f中读取n个字符串存入指针s所指的内存
D)从文件f中读取长度为n-1的字符串存入指针s所指的内存
2、在 C中,对文件的存取以________为单位 A)记录
B)字节 C)元素
D)簇
3、下面的变量表示文件指针变量的是 A)FILE *fp
B)FILE fp C)FILER *fp
D)file *fp
4、在 C中,下面对文件的叙述正确的是
A)用“r”方式打开的文件只能向文件写数据 B)用“R”方式也可以打开文件
C)用“w”方式打开的文件只能用于向文件写数据,且该文件可以不存在 D)用“a”方式可以打开不存在的文件
5、在 C中,当文件指针变fp已指向“文件结束”,则函数feof(fp)的值是 A).t.B).F.C)0
D)1
6、在 C中,系统自动定义了3个文件指针stdin,stdout和stderr分别指向 终端输入、终端输出和标准出错输出,则函数fputc(ch,stdout)的功能是 A)从键盘输入一个字符给字符变量ch B)在屏幕上输出字符变量ch的值 C)将字符变量的值写入文件stdout中 D)将字符变量ch的值赋给stdout
7、下面程序段的功能是 #include
C)从键盘输入一个字符,然后在输出到屏幕的同时赋给变量s1 D)在屏幕上输出stdout的值
8、在 C中,常用如下方法打开一个文件 if((fp=fopen(“file1.c”,“r”))==NULL){printf(“cannot open this file n”);exit(0);} 其中函数exit(0)的作用是 A)退出C环境
B)退出所在的复合语句
C)当文件不能正常打开时,关闭所有的文件,并终止正在调用的过程 D)当文件正常打开时,终止正在调用的过程
9、执行如下程序段 #include
B)file.c C)file.dat
D)file.txt
10、在内存与磁盘频繁交换数据的情况下,对磁盘文件的读写最好使用的函数是 A)fscanF,fprintf
B)fread,fwrite C)getc,putc
D)putchar,getchar
11、在C中若按照数据的格式划分,文件可分为
A)程序文件和数据文件
B)磁盘文件和设备文件 C)二进制文件和文本文件
D)顺序文件和随机文件
12、若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是
A)EOF
B)-1 C)非零值
D)NULL
13、在C中,缓冲文件系统是指
A)缓冲区是由用户自己申请的 B)缓冲区是由系统自动建立的
D)缓冲区是根据文件的大小决定的 D)缓冲区是根据内存的大小决定的
14、在C中,文件型指针是
A)一种字符型的指针变量
B)一种结构型的指针变量 C)一种共用型的指针变量
D)一种枚举型的指针变量
15、在C中,标准输出设备是指 A)键盘
B)鼠标 C)硬盘
D)光笔
16、在C中,标准输出设备和标准错误输出设备是指显示器,它们对应的指针名 分别为
A)stdin,stdio
B)STDOUT,STDERR C)stdout,stderr
D)stderr,stdout
17、在C中,所有的磁盘文件在操作前都必须打开,打开文件函数的调用格式为: fopen(文件名,文件操作方式);
其中文件名是要打开的文件的全名,它可以是: A)字符变量名、字符串常量、字符数组名
B)字符常量、字符串变量、指向字符串的指针变量 C)字符串常量、存放字符串的字符数组名、指向字符串的指针变量 D)字符数组名、文件的主名、字符串变量名
18、在C中,打开文件的程序段中正确的是
A)#include
B)#include
FILE *fp;
FILE fp;
fp=fopen(“file1.c”,“WB”);
fp=fopen(“file1.c”,“w”);C)#include
D)#include
FILE *fp;
FILE *fp;
fp=fopen(“file1.c”,“w”);
fp=fopen(“file1.c”,“w”);
19、在C中,打开文件时,选用的文件操作方式为“wb”,则下列说法中错误的是 A)要打开的文件必须存在 B)要打开的文件可以不存在 C)打开文件后可以读取数据
D)要打开的文件是二进制文件
20、在C中,如果要打开C盘一级目录ccw下,名为“ccw.dat”的二进制文件用于 读和追加写,则调用打开文件函数的格式为
A)fopen(“c:ccwccw.dat”,“ab”)B)fopen(“c:ccw.dat”,“ab+”)C)fopen(“c:ccwccw.dat”,“ab+”)D)fopen(“c:ccwccw.dat”,“ab+”)
21、在C中,假设文件型指针fp已经指向可写的磁盘文件,并且正确执行了函数 调用fputc('A',fp),则该次调用后函数返回的值是 A)字符'A'或整数65
B)符号常量EOF C)整数1
D)整数-1
22、以下函数,一般情况下,功能相同的是 A)fputc和putchar
B)fwrite和fputc C)fread和fgetc
D)putc和fputc
23、设文件file1.c已存在,且有如下列程序段 #include
A)将文件file1.c的内容输出到屏幕 B)将文件file1.c的内容输出到文件
C)将文件file1.c的第一个字符输出到屏幕 D)什么也不干
24、设文件stu1.dat已存在,且有如下列程序段 #include
A)将文件stud1.dat的内容复制到文件stud2.dat中 B)将文件stud2.dat的内容复制到文件stud1.dat中 C)屏幕输出stud1.dat的内容 D)什么也不干
25、下面程序段定义了函数putint,该函数的功能是 putint(int n,FILE *fp){char *s;int num;s=&n;for(num=0;num<2;num++)putc(s[num],fp);} A)屏幕输出一整数
B)屏幕输出一字符 C)向文件写入一实数
D)向文件写入一整数
26、如果要将存放在双精度型数组a[10]中的10个双精度型实数写入文件型指针 fp1指向的文件中,正确的语句是 A)for(i=0;i<80;i++)fputc(a[i],fp1);B)for(i=0;i<10;i++)fputc(&a[i],fp1);C)for(i=0;i<10;i++)fwrite(&a[i],8,1,fp1);D)fwrite(fp1,8,10,a);
27、如果将文件型指针fp指向的文件内部指针置于文件尾,正确的语句是 A)feof(fp);
B)rewind(fp);C)fseek(fp,0L,0);
D)fseek(fp,0L,2);
28、如果文件型指针fp指向的文件刚刚执行了一次读操作,则关于表达式 “ferror(fp)”的正确说法是
A)如果读操作发生错误,则返回1
B)如果读操作发生错误,则返回0 C)如果读操作未发生错误,则返回1 D)如果读操作未发生错误,则返回0
29、下列程序的主要功能是 #include “stdio.h” main(){FILE *fp;long count=0;fp=fopen(“q1.c”,“r”);while(!feof(fp)){fgetc(fp);count++;} printf(“count=%ldn”,count);fclose(fp);} A)读文件中的字符
B)统计文件中的字符数并输出 C)打开文件
D)关闭文件
30、下列程序的主要功能是 #include “stdio.h” main(){FILE *fp;char ch;long count1=0,count2=0;fp=fopen(“q1.c”,“r”);while(!feof(fp)){ch=fgetc(fp);if(ch=='{'}count++;if(ch==')')count2++;} if(count1==count2)printf(“YES!n”);else printf(“ERROR!n”);fclose(fp);} A)读文件中的字符'{'和'}'
B)统计文件中字符'{'和'}'的个数
C)输出“YES!”和“ERROE!”
D)检查C语言源程序中的花括号是否配对
31、假定名为“data1.dat”的二进制文件中依次存放了下列4个单精度实数:
-12.1
12.2
-12.3 12.4 则下面程序运行后的结果是 #include “stdio.h” main(){FILE *fp;float sum=0.0,x;int i;fp=fopen(“data1.dat”,“rb”)for(i=0;i<4;i++,i++)
{fread(&x,4,1,fp);sum+=x;} printf(“%fn”,sum);fclose(fp);} A)0.1
B)0.0 C)-12.3
D)12.4
32、下面程序的主要功能是: #include “stdio.h” main(){FILE *fp;float x[4]={-12.1,12.2,-12.3,12.4};int i;fp=fopen(“data1.dat”,“wb”)for(i=0;i<4;i++){fwrite(&x[i],4,1,fp);fclose(fp);} } A)创建空文档data1.dat B)创建文本文件data1.dat C)将数组x中的四个实数写入文件data1.dat中 D)定义数组x
33、有如下程序段: #include “stdio.h” main(){FILE *fp;int i;char s[10];fp=fopen(“name.txt”,“w”)for(i=0;i<40;i++)
{scanf(“%s”,s);fputc(s,fp);fputc(“n”,fp);} fclose(fp);} 下面说法正确的是
A)将39个人的名字写入文本文件name.txt中 B)将40个人的名字写入文本文件name.txt中 B)文件name.txt中只能写入40个字符 D)文件name.txt必须存在
34、有如下函数段: int file_err(fpp)FILE *fpp;{ if(ferror(fpp))
return(1);
else
return(0);} 则下列说法正确的是
A)函数的功能是测试fpp所指向的文件最后一次操作是否正确 B)函数的功能是返回1 C)函数的功能是返回0 D)函数的功能是测试fpp所指向的文件最近一次操作是否正确
35、函数fopen()的返回值不能是 A)NULL
B)0 C)1
D)某个内存地址
36、以只写方式打开一个二进制文件,应选择的文件操作方式是 A)“a+”
B)“w+” C)“RB”
D)“wb”
37、存储整型数据-7865时,在二进制文件和文本文件中占用的字节数分别是 A)2和2
B)2和5 C)5和5
D)5和2
38、在C中,二进制文件中的数据存放格式和整数-12345占用的字节数分别为 A)ASCII码方式、4个字节
B)ASCII码方式、2个字节 C)二进制数方式、2个字节
D)二进制数方式、4个字节
答案:
1、B
2、B
3、A
4、C
5、D
6、B
7、C
8、C
10、B
11、C
12、C
13、B
14、B
15、A
16、C
17、C
19、A
20、D
21、A
22、D
23、A
24、D
25、D
26、C
28、D
29、B
30、D
31、A
32、C
33、B
34、C
36、D
38、B
9、A、C
27、D
37、B
第二篇:c语言选择题
2.C语言的基本单位是A
A 函数
B 源程序
C 语句
D 程序行
3..以下说法中正确的是C
A C语言程序总是从第一个定义的函数开始执行C;
B C语言程序中至少有一个main函数;
C C语言程序总是从main函数开始执行;
D C语言程序中的main函数必须放在程序的开始部分; 4.C源程序文件的扩展名为C A.exe B.txt
C.c D.obj 5..以下说法中正确的是D
A C源程序可以直接运行产生结果;
B C源程序经编译后才可直接运行产生结果;
C C源程序经连接后才可直接运行产生结果;
D C源程序经编译和连接后才可直接运行产生结果;
6.在C程序中,main()函数的位置是C A 必须作为第一个函数;
B 必须作为最后一个函数;
C 可以任意;
D 必须放在它所调用的函数之后;
7.以下叙述不正确的是D
A 一个C源程序可由一个或多个函数构成;
B 一个C源程序必须包含一个main函数;
C C程序的基本组成单位是函数;
D 在对一个C程序进行编译的过程中,可发现注释中的拼写错误;
8.C语言中,下列正确的叙述是D
A C程序中的关键字必须小写,其他标识符不区分大小写
B C程序中的所有字母都不区分大小写
C C程序中的所有字母都必须小写
D 所有的C语言关键字必须小写
9.要把高级语言编写的源程序转换为目标程序,需要使用D A 编辑程序
B 驱动程序
C 诊断程序
D 编译程序
10.以下叙述中错误的是 D
A C语言源程序经编译后生成后缀为.obj的目标程序
B C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
11.用C语言编写的代码程序B
A 可立即执行
B 是一个源程序
C 经过编译即可执行
D 经过编译解释才能执行
12.以下叙述中正确的是B
A C语言的源程序不必通过编译就可以直接运行
B C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C C源程序经编译形成的二进制代码可以直接运行
D C语言中的函数不可以单独进行编译
13.以下叙述中正确的是A A 构成C程序的基本单位是函数
B 可以在一个函数中定义另一个函数
C main()函数必须放在其它函数之前
D 所有被调用的函数一定要在调用之前进行定义
14.能将高级语言源程序转换成目标程序的是C
A 调试程序
B 解释程序
C 编译程序
D 编辑程序
15.以下叙述中正确的是C
A C程序的基本组成单位是语句
B C程序中的每一行只能写一条语句
C 简单C语句必须以分号结束
D C语句必须在一行内写完
16.计算机能直接执行的程序是D
A 源程序
B 目标程序
C 汇编程序
D 可执行程序
17.在语言中,以下叙述不正确的是D A 一个C源程序可由一个或多个函数组成B 一个C源程序必须包含一个main函数
C C程序的基本组成单位是函数
D 在C程序中,注释说明只能位于一条语句的后面
18.C语言规定:在一个源程序中,main函数的位置C A 必须在最开始
B 必须在系统调用的库函数的后面
C 可以任意
D 必须在最后
19.一个C程序的执行是从A
A 本程序的main 函数开始,到main函数结束
B 本程序文件中的第一个函数开始,到本程序文件的最后一个函数结束
C 本程序的main 函数开始,到本程序文件的最后一个函数结束
D 本程序文件的第一个函数开始,到本程序main函数结束
20.下列叙述中错误的是A
A 主函数中定义的变量在整个程序中都是有效的。
B 在其它函数中定义的变量在主函数中也不能使用。
C 形式参数也是局部变量。
D 复合语句中定义的变量只在该复合语句中有效。
21.在函数的说明和定义时若没有指出函数的类型,则A A 系统自动地认为函数的类型为整型。
B 系统自动地认为函数的类型为字符型。
C 系统自动地认为函数的类型为实型。
D 编译时会出错。
22.下面叙述中正确的是C
A 对于用户自己定义的函数,在使用前必须加以说明。
B 说明函数时必须明确其参数类型和返回类型。
C 函数可以返回一个值,也可以什么值也不返回。
D 空函数不完成任何操作,所以在程序设计中没有用处。
23.下面正确的函数定义形式是A A double fun(int x,int y)
B double fun(int x;int y)C double fun(int x,int y);
D double fun(int x,y);
24.若调用一个函数,且此函数中没有return语句,则正确的说法是(D)该 函数:
A 没有返回值
B 返回若干个系统默认值;
C 能返回一个用户所希望的函数值;
D 返回一个不确定的值
25.下面说法中不正确的是(B)在C语言中
A 实参可以是常量、变量或表达式;
B 形参可以是常量、变量或表达式;
C 函数的参数是函数间传递数据的一种手段;
D 实参个数应与对应的形参个数相等,类型匹配;
26.C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是B A float型
B int 型
C long 型
D double型
27.C语言规定,函数返回值的类型是由D A return语句中的表达式类型所决定;
B 调用该函数时的主调函数类型所决定;
C 调用该函数时系统临时决定;
D 在定义该函数时所指定的函数类型所决定;
28下面函数调用语句含有实参的个数为(B)
func((exp1,exp2),(exp3,exp4,exp5));A 1 B 2 C 5 D 4
29.以下错误的描述是(D)函数的调用可以
A 出现在执行语句中;
B 出现在一个表达式中;
C 为一个函数的实参;
D 作为一个函数的形参;
30.下正确的说法是(A)。如果在一个函数中的复合语句中定义了一个变量,则该变量
A 只在该复合语句中有效
B 在该函数中有效
C 本程序中有效
D 为非法变量
31.以下不正确的说法是D
A 在不同函数中可以使用相同的名字的变量;
B 形式参数是局部变量;
C 在函数内定义的变量只在本函数范围内有效;
D 在函数内的复合语句中定义的变量在本函数范围内有效;
32.如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见 的,这个变量的存储类型应该被说明为___ A _。
A 静态变量
B 动态变量
C 外部变量
D 内部变量 33.在一个C源程序文件中,•若要定义一个只允许在该源文件中所有函数使用的 变量,则该变量需要使用的存储类别是。D A extern B register C auto D static 34.在C语言中,函数的数据类型是指A A 函数返回值的数据类型
B 函数形参的数据类型
C 调用该函数时的实参的数据类型
D 任意指定的数据类型
35.已知如下定义的函数:
fun1(int a){ printf(“n%d”,a); } 则该函数的数据类型是_A___。
A 与参数a的类型相同
B void型
C 没有返回值
D 无法确定
36.有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A A 3 B 4 C 5 D 有语法错
37.以下所列的各函数首部中,正确的是C A void play(var :Integer,var b:Integer)B void play(int a,b)C void play(int a,int b)
D Sub play(a as integer,b as integer)38.以下正确的说法是B
A 用户若需调用标准库函数,调用前必须重新定义;
B 用户可以重新定义标准库函数,若如此,该函数将失去原有含义;
C 系统根本不允许用户重新定义标准库函数;
D 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调;
39.函数用 return 语句返回计算 20!的结果,此函数的类型应说明为_D_____。
A int
B long
C unsigned long
D 其它三个答案都不对
40.若有以下程序
#include “stdio.h” void f(int n);main(){
void f(int n);
f(5);}
void f(int n){
printf(“%dn”,n);}
则以下叙述中不正确的是C
A 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f C 对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明
D 函数f无返回值,所以可用void将其类型定义为无值型
41.在C语言中,形参的缺省存储类是A A auto
B register
C static
D extern 42.以下叙述中错误的是 D
A C程序必须由一个或一个以上的函数组成 B 函数调用可以作为一个独立的语句存在 C 若函数有返回值,必须通过return语句返回
D 函数形参的值也可以传回对应的实参
43.在C语言中关于函数的正确叙述是B A 函数的定义和调用均可以嵌套
B 函数的定义不可以嵌套,但函数的调用可以嵌套
C 函数的定义和调用均不可以嵌套
D 函数的定义可以嵌套,但函数的调用不可以嵌套
44.有以下程序
int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main(){
int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf(“%d,%d%d ”,e,f,g);}
程序运行后的输出结果是(A)。
A 4,3,7
B 3,4,7
C 5,2,7
D 2,5,7 45.以下关于函数的叙述中正确的是B
A 每个函数都可以被其它函数调用(包括main函数)
B 每个函数都可以被单独编译
C 每个函数都可以单独运行
D 在一个函数内部可以定义另一个函数
46.设函数fun的定义形式为 void fun(char ch, float x){ „ } 则以下对函数fun的调用语句中,正确的是(D)。
A fun(“abc”,3.0);B t=fun(''D'',16.5);C fun(''65'',2.8);
D fun(32,32);
47.若程序中定义了以下函数 double myadd(double a,double B){ return(a+B)} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是(A)。
A double myadd(double a,B)
B double myadd(double,double);C double myadd(double b,double A)
D double myadd(double x,double y);
48.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是D A 函数调用可以作为独立的语句存在 B 函数调用可以作为一个函数的实参
C 函数调用可以出现在表达式中
D 函数调用可以作为一个函数的形参
49.有以下函数定义: void fun(int n, double x){ „„ } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是(C)。
A fun(int y,double m);
B k=fun(10,12.5);C fun(x,n);
D void fun(n,x);
50.有以下函数定义: void fun(int n, double x){ „„ } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是(C)。
A fun(int y,double m);B k=fun(10,12.5);C fun(x,n);
D void fun(n,x);
51.在一个C程序中B
A main函数必须出现在所有函数之前
B main函数可以在任何地方出现
C main函数必须出现在所有函数之后
D main函数必须出现在固定位置
52.有以下程序 int fl(int x,int y)
{ return x>y?x:y;}
int f2(int x,int y)
{ return x>y?y:x;}
main()
{ int a=4,b=3,c=5,d,e,f; d=f1(a,b);d=f1(d,c);e=f2(a,b);e=f2(e,c); f=a+b+c-d-e;printf(“%d,%d,%dn”,d,f,e);} 执行后输出结果是(C)。
A 3,4,5 B 5,3,4
C 5,4,3 D 3,5,4 53.以下叙述中正确的是B
A 全局变量的作用域一定比局部变量的作用域范围大
B 静态(static)类别变量的生存期贯穿于整个程序的运行期间
C 函数的形参都属于全局变量
D 未在定义语句中赋初值的auto变量和static变量的初值都是随机值
54.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是B A void
B int
C float
D double 55.有以下程序
float fun(int x,int y){ return(x+y);} main()
{ int a=2,b=5,c=8;printf(“%3.0fn”,fun((int)fun(a+c,b),a-c));} 程序运行后的输出结果是(B)。
A 编译出错
B 9 C 21 D 9.0 56.以下函数值的类型是(A)。
fun(float x){ float y;y= 3*x-4;return y;} A int B 不确定 C void D float 57.下列叙述中正确的是D A C语言编译时不检查语法
B C语言的子程序有过程和函数两种
C C语言的函数可以嵌套定义
D C语言所有函数都是外部函数
58.以下程序的输出结果是(C)。
fun(int x, int y, int z){ z=x*x+y*y;} main(){ int a=31;fun(5,2,a);
printf(“%d”,a);}
A 0 B 29 C 31 D 无定值
59.有如下程序
int runc(int a,int b){ return(a+b);} main()
{ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%dn”,r);}
该程序的输出的结果是(D)。
A 12
B 13 C 14 D 15
60.以下叙述中不正确的是D A 在不同的函数中可以使用相同名字的变量 B 函数中的形式参数是局部变量
C 在一个函数内定义的变量只在本函数范围内有效
D 在一个函数内的复合语句中定义的变量在本函数范围内有效
61.有以下程序 viod fun(int a,int b,int c){ a=456;b=567;c=678;} main(){ int x=10,y=20,z=30;fun(x,y,z);printf(“%d,%d,%dn”,z,y,x);} 输出结果是(A)。
A 30,20,10 B 10,20,30 C 456,567,678 D 678,567,456 62.以下叙述中不正确的是C
a)A 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。
B 在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。
C 在C中,外部变量的隐含类别是自动存储类别。
D 在C中,函数形参可以说明为register变量。
63.若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调 用语句中实参的个数是A A 3
B 4
C 5
D 6
64.C语言中,函数的隐含存储类别是C A auto
B static
C extern D 无存储类别
65.以下说法中正确的是C
A C语言程序总是从第一个的函数开始执行
B 在C语言程序中,要调用的函数必须在main()函数中定义
C C语言程序总是从main()函数开始执行
D C语言程序中的main()函数必须放在程序的开始部分
66.下面说法中不正确的是D A 全局变量一定是外部变量
B 局部变量一定是内部变量。
C 全局变量作为函数间传递数据的手段时,与文件的作用类似,都是通过共享某种资源来传递数据。
D 全局变量与局部变量不可以重名
67.C 语言允许函数返回值类型缺省定义,此时该函数返回值默认的类型是B a)A float 型
B int 型
C long 型
D double 型
68.关于流程控制语句,下列说法正确的一项是C A 一个自定义函数中的return语句只能出现一次;
B break语句只适用于几种循环语句格式,表示终止当前层的循环;
C 在循环体中遇到continue,表示结束本次循环,直接进行下次循环条件的判断;
D 在自定义函数的执行过程中,return语句可能被多次执行。
69.若有定义语句:char s[10]=“1234567 ”;,则strlen(s)的值是A A 7 B 8 C 9 D 10
70.若有定义:int x,*pb;则以下正确的赋值表达式是(C)
A *pb=&x;B pb=x;C pb=&x;D *pb=*x;71.执行以下程序后,a的值为
main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;
b=(-*p1)/(*p2)+7;printf(“a=%dn”,a);printf(“b=%d”,b);} A -1 B 1 C 0 D 4
72.下面程序中调用scanf 函数给变量a输入数值的方法是错误的,其错误原因 是(B)main(){ int *p,q,a,b;p=&a;scanf(“%d”,*p);„„ }
A *p表示的是指针变量p的地址;
B *p表示的是变量a的值,而不是变量a的地址
C *p表示的是指针变量p的值
D *p只能用来说明p是一个指针变量
73.若有int k=2,*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确 执行的语句是B
A k=*ptr1+*ptr2;B ptr2=k;
C ptr1=ptr2;
D k=*ptr1*(*ptr2);
74.若有语句int *point a=4;和point &a;下面均代表地址的一组选项是C A a,point,*&a
B &*a,&a,*point C *&point,*point,&a
D &a,&*point,point 75.若有说明:int *p,m=5,n;下面正确的程序段是D a)A p=&n;scanf(“%d”,&p);
B p=&n;scanf(“%d”,*p);C scanf(“%d”,&n);*p=n;
D p=&n;*p=m
76.下面能正确进行字符串赋值操作的是C A char s[5]={“ABCDE”};
B char s[5]={‘A’,’B’,’C’,’D’,’E’};C char *s s=“ABCDE”;D char *s;scanf(“%s”,s);77.设有下面的程序段:
char s[]=”china”;char *p;p=s;则下列叙述正确的是C A s和p完全相同
B 数组s中的内容和指针变量p中的内容相等
C *P与s[0]相等
D s数组长度和p所指向的字符串长度相等
78.下面程序段的运行结果是C
char *format=”%s,a=%d,b=%dn”;int a=1,b=10;a+=b;printf(format,”a+=b”,a,b);
A for,”a+=b”,ab
B format,”a+=b”
C a+=b,a=11,b=10
D 以上结果都不对
79.若有语句:char s1[]=”string”,s2[8],*s3,*s4=”string2”;则对库 函数strcpy()的正确调用是D A strcpy(s1,”string2”);B strcpy(s4,”string1”);C strcpy(s3,”string1”);
D strcpy(s2,s4);80.下面说明不正确的是D A char a[10]=”china”;
B char a[10],*p=a;p=”china”;C char *a;a=”china”;
D char a[10],*p;p=a=”china”;
81.语句while(!e);中的条件!e等价于A A e==0 B e!=0 C e!=1 D ~e 82.以下程序的输出结果是(C)
main()
{ int num=0;while(num<=2){ num++;printf(“%d,”,num);} }
A 1,B 1,2,C 1,2,3,D 1,2,3,4, 83.以下程序段是(C)
x=-1;do
{ x=x*x;} while(!x);
A 死循环
B 循环执行两次
C 循环执行一次
D 有语法错误
84.以下不正确的描述是B
A break语句不能用于循环语句和switch语句外的其它语句
B 在switch语句中使用break语句或continue语句的作用相同
C 在循环语句中使用continue语句是为了结束本次循环
D 在循环语句中使用break语句是为了使流程跳出循环体
85.对于for(表达式1;;表达式3)可理解为B A for(表达式1;0;表达式3)B for(表达式1;1;表达式3)
C for(表达式1;表达式1;表达式3)D for(表达式1;表达式3;表达式3)86.C语言中D
A 不能使用do-whi1e语句构成的循环;
B do-while语句构成的循环必须用break语句才能退出;
C do-while语句构成的循环,当while语句中的表达式值为非零时结束循环;
D do-while语句构成的循环,当while语句中的表达式值为零时结束循环;
87.C语言中while和do-while循环的主要区别是A A do-while的循环体至少无条件执行一次
B while的循环控制条件比do-while的循环控制条件严格
C do-while允许从外部转到循环体内;
D do-while的循环体不能是复合语句;
88.若i为整型变量,则以下循环执行的次数是(B)
for(i=2;i==0;)printf(“%d”,i--);
A 无限次
B 0次
C 1次
D 2次
89.以下for 循环的执行次数是(C)
for(x=0,y=0;(y=123)&&(x<4);x++);
A 是无限循环
B 循环次数不定
C 执行4次
D 执行3次
90.下列循环语句中有语法错误的是D A while(x=y)5;
B while(0); C do 2;while(x==b);
D do x++ while(x==10);
91.有关语句for(;;);执行过程的描绘中,正确的是 C 92.A 不执行任何操作
B 空循环一次
C 无休止地执行循环体
D 上都不对
92.下面有关for循环的正确描述是D
A for循环只能用于循环次数已经确定的情况
B for循环是先执行循环体语句,后判定表达式
C 在for循环中,不能用break语句跳出循环体
D for循环体语句中,可以包含多条语句,但要用花括号括起来
93.与语句 while(!x);等价的语句是A
A while(x==0); B while(x!=0); C while(x!=1); D while(~x);
94.以下for循环是(D)
for(x=0,y=0;(y!=123)&&(x<3);x++);
A 无限循环 B 循环次数不定 C 执行4次 D 执行3次
95.下列关于switch语句和break语句的结论中,正确的是B A break语句是switch语句中的一部分
B 在switch语句中可以根据需要使用或不使用break语句
C 在switch语句中必须使用break语句
D switch语句是break语句的一部分
96.以下叙述中正确的B
A 调用printf函数时,必须要有输出项
B 使用putchar函数时,必须在之前包含头文件stdio.h
C 在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D 调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
97.有以下程序段
int n,t=1,s=0;scanf(“%d”,&n);do{ s=s+t;t=t-2;}while(t!=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是D。
A 任意正奇数
B 任意负偶数
C 任意正偶数
D 任意负奇数
98.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++)s=s+1;
则与上述程序段功能等价的赋值语句是B A s=a+b;B s=a+c;C s=s+c;D s=b+c;99.有如下程序 B main()
{ int x=23;do
{ printf(“%d”,x--);} while(!x);}
该程序的执行结果是
A 321
B 23
C 不输出任何内容
D 陷入死循环
100.以下循环体的执行次数是(C)。main(){ int i,j;
for(i=0,j=1;i<=j+1;i+=2, j--)printf(“%d n”,i);}
A 3
B 2
C 1 D 0
101.以下不是死循环的语句为(A)
A for(y=1,x=1;x>=++y;x++)B for(;;x++)
C while(1){x++;} D for(i=10;;i--)
102.在C语言中,假定a和b为int型变量,则执行以下语句后b的值为D a=1;
b=10;
do {
b-=a;
a++;}
while(b--<0);
A 9
B-2
C-1 D 8
103.在C语言中,以下的for循环()。
for(x=0,y=0;(y!=123)&&(x<4);x++);C
A 是无限循环 B 循环次数不定 C 执行4次 D 执行3次
104.在TC中,与语句 “while(!x)” 等价的语句是(A)。
A while(x==0)
B while(x!=0)
C while(x!=1)
D while(~x)105.在C语言中,设已定义k为int整型变量,则有下面while循环执行(C)次。k=10;while(k==0)k=k-1;
A 10
B 无限
C 0
D 1
106.在C语言中,当do-while语句中的条件为(C)时,结束该循环。
A TURE
B 1
C 0
D 非0 107.下列说法中正确的是B
A 在程序中定义一个结构体类型,将为此类型分配存储空间。
B 结构体类型的成员名可与结构体以外的变量名相同。
C 结构体类型必须有名称。
D 结构体内的成员不可以是结构体变量。
108.当说明一个结构体变量时系统分配给它的内存是A A 各成员所需内存量的总和;
B 结构体中第一个成员所需的内存量;
C 成员中内存量最大者所需的容量;
D 结构体中最后一个成员所需 的内存量;
109.当说明一个共用体变量时系统分配给它的内存是C A 各成员所需内存量的总和;
B 第一个成员所需的内存量;
C 成员中内存量最大者所需的容量;
D 最后一个成员所需 的内存量;
110.设有以下说明语句
typedef struct { int n;char ch[8];}PER;
则下面叙述中正确的是B A PER 是结构体变量名
B PER是结构体类型名
C typedef struct 是结构体类型
D struct 是结构体类型名
111.以下选项中不能正确把cl定义成结构体变量的是B A typedef struct { int red;int green;int blue;} COLOR;COLOR cl;B struct color cl { int red;int green;int blue;};
C struct color { int red;int green;int blue;} cl;
D struct { int red;int green;int blue;} cl;112.设有如下定义:
struck sk { int a;float b;}data;int *p;
若要使P指向data中的a域,正确的赋值语句是(C)。A p=&a;
B p=data.a;
C p=&data.a;
D *p=data.a;113.设有以下说明语句
struct ex
{ int x float y;char z } example;则下面的叙述中不正确的是B A struct结构体类型的关键字
B example是结构体类型名
C x,y,z都是结构体成员名
D struct ex是结构体类型
114.有如下定义
struct person{char name[9];int age;};strict person class[10]={“Johu”, 17, “Mary”, 18, “Adam 16,};
根据上述定义,能输出字母M的语句是 D A prinft(“%cn”,class[3].mane);
B pfintf(“%cn”,class[3].name[1]);
C prinft(“%cn”,class[2].name[1]);
D printf(“%^cn”,class[2].name[0]);
115.若程序中有下面的说明和定义
struct abc
{int x;char y;} struct abc s1,s2;则会发生的情况A A 编译出错
B 程序将顺利编译`连接`执行
C 能顺利通过编译`连接`但不能执行
D 能顺利通过编译`但连接出错
116.设有定义: struct complex
{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是B A data2=data1;B data2=(2,6);
C data2.real=data1.real;D data2.real=data1.unreal;
117.C语言中,逻辑“真”等价于C
A 大于零的数
B 大于零的整数
C 非零的数
D 非零的整数
118.C语言的 switch 语句中,case 后B A 只能为常量
B 只能为常量或常量表达式
C 可为常量及表达式或有确定值的变量及表达式
D 可为任何量或表达式
119.main()
Paul”, 19 “ { int a,b,d=241;a=d/100%9;b=(-1)&&(-1);
printf(“%d,%d”,a,b);}B
A 6,1
B 2,1
C 6,0
D 2,0
120.若有int x=10,y=20,z=30;以下语句执行后x,y,z的值是(B)
if(x>y)
z=x;x=y;y=z;
A x=10,y=20,z=30
B x=20,y=30,z=30 C x=20,y=30,z=10
D x=20,y=30,z=20
121.以下程序段的输出结果是B
int a=10,b=50,c=30; if(a>b)a=b; b=c; c=a;
printf(“a=%d b=%d c=%dn”,a,b,c);
A a=10 b=50 c=10
B a=10 b=30 c=10 C a=50 b=30 c=10
D a=50 b=30 c=50
122.已知int i=10;表达式“20-0<=i<=9”的值B A 0
B 1 C 19
D 20
123.设有int i, j, k;则表达式i=1,j=2,k=3, i&&j&&k 的值为A A 1 B 2 C 3 D 0
124.逻辑运算符两侧运算对象的数据类型D A 只能是0或1
B 只能是0或非0正数
C 只能是整型或字符型数据
D 可以是任何类型的数据
125.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假” 的表达式是C
A(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B(x>=1)||(x<=10)||(x>=200)||(x<=210)
C(x>=1)&&(x<=10)||(x>=200)&&(x<=210)D(x>=1)||(x<=10)&&(x>=200)||(x<=210)
126.已知x=43,ch=’a’,y=0;则表达式(x>=y&&ch<’b’&&!y)的值B A 0
B 1
C 语法错误
D 假
127.执行下列语句后a的值为B
int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A 5
B 0
C 2
D 1
128.若w=1,x=2,y=3,z=4,则表达式w 129.设有int a=2,b;则执行b=a&&1;语句后,b的结果是B A 0 B 1 C 2 D 3 130.当a=5,b=2时,表达式a= =b的值为C A 2 B 1 C 0 D 5 131.下列表达式中能表示a在0到100之间的B A a>0&a<100 B!(a<0||a>100)C 0 D!(a>0&&a<100) 132.已知:int x,a,b;下列选项中错误的if语句是B A if(a=b)x++;B if(a<=b)x++;C if(a-b)x++;D if(x)x++; 133.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三 个选项含义不同,这个选项是(D)。 A k%2 B k%2==1 C(k%2)!=0 D!k%2==1 134.设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是A A(!a==1)&&(!b==0)B a C a && b D a||(b+b)&&(c-a) 135.以下4个选项中,不能看作一条语句的是D A {;} B a=0,b=0,c=0; C if(a>0); D if(b==0)m=1;n=2;136.以下非法的赋值语句是C A n=(i=2,++i); B j++; C ++(i+1); D x=j>0; 137.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是D A 6 B 0 C 2 D 1 138.有如下程序 main0 { int a=2,b=-1,c=2;if(a 该程序的输出结果是C A 0 B 1 C 2 D 3 139.能表示x为偶数的表达式是A A x%2==0 B x%2==1 C x%2 D x%2!=0 140.下面的程序段中共出现了几处语法错误?C int a,b; scanf(“%d”,a);b=2a; if(b>0)printf(“%b”,b); A 1 B 2 C 3 D 4 141.要打开一个已存在的非空文件“file”用于修改,选择正确的语句_D_ A fp=fopen(“file”, “r”); B fp=fopen(“file”, “a+”); C fp=fopen(“file”, “w”); D fp=fopen(“file”, “r+”); 142.fscanf函数的正确调用形式是。D A fscanf(文件指针, 格式字符串, 输出列表); B fscanf(格式字符串, 输出列表, 文件指针); C fscanf(格式字符串, 文件指针, 输出列表); D fscanf(文件指针, 格式字符串, 输入列表); 143.若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是B A fopen(“A:userabc.txt”,“r”)B fopen(“A:userabc.txt”,“r+”)C fopen(“A:userabc.txt”,“rb”)D fopen(“A:userabc.txt”,“w” 144.以下叙述中错误的C A C语言中对二进制文件的访问速度比文本文件快 B C语言中,随机文件以二进制代码形式存储数据 C 语句 FILE fp;定义了一个名为fp的文件指针 D C语言中的文本文件以ASCII码形式存储数据 145.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp)的值为A A 0 B 1 C-1 D 一个非0值 146.下列关于C语言数据文件的叙述中正确的是D A 文件由ASCII码字符序列组成,C语言只能读写文本文件 B 文件由二进制数据序列组成,C语言只能读写二进制文件 C 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 147.以下叙述中不正确的是D A C语言中的文本文件以ASCⅡ码形式存储数据 B C语言中对二进制文件的访问速度比文本文件快 C C语言中,随机读写方式不适用于文本文件 D C语言中,顺序读写方式不适用于二进制文件 148.以下叙述中错误的是D A 二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B 在程序结束时,应当用fclose函数关闭已打开的文件 C 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据 D 不可以用FILE定义指向二进制文件的文件指针 149.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是 C A EOF B 0 C 非零值 D NULL 150.在C程序中,可把整型数以二进制形式存放到文件中的函数是A A fprintf函数 B fread函数 C fwrite函数 D fputc函数 151.使用fopen()以文本方式打开或建立可读可写文件,要求:若指定的文件不存在,则新建一个,并使文件指针指向其开头,若指定的文件存在,打开它,将文件指针指向其结尾。正确的“文件使用方式”描述是B 152.A “r+” B “w+” C “a+” D “a” 153.152.有以下程序 #include 程序运行后的输出结果是C A abc B 28bc C abc28 D 因类型不一致而出错 153.在C语言中,以下哪个函数用于将字符输出到标准输出设备(A) A putchar() B open() C read() D getw()154.C语言中用于结构化程序设计的三种基本结构是A A 顺序结构、选择结构、循环结构 B if、switch、break C for、while、do-while D if、for、continue 155.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值 为 1、j的值为 2、k的值为3,以下选项中正确的输入语句是C A scanf(“%2d%2d%2d”,&i,&j,&k);B scanf(“%d %d %d”,&i,&j,&k);C scanf(“%d,%d,%d”,&i,&j,&k); D scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);156.若有以下程序: main() { int k=2,i=2,m; m=(k+=i*=k);printf(“%d,%dn”,m,i);} 执行后的输出结果是(C)。 A 8,6 B 8,3 C 6,4 D 7,4 157.若有定义:int x,y;char a,b,c;并有以下输入数据(此处< CR> 代表换行 符,/u代表空格): 1u2 AuBuC 则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是D A scanf(“x=%d y+%d”,&x,&y);a=getchar();b=getchar();c=getchar();B scanf(“%d %d”,&x,&y);a=getchar();b=getchar();c=getchar();C scanf(“%d%d%c%c%c,&x,&y,&a,&b,&c); D scanf(”%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&c);158.有以下程序 #include main(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar();d=getchar();printf(“%c%c%c%c ”,a,b,c,d);} 当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:车也是一个字符)12 34 则输出结果是C A 1234 B 12 C 123 D 1234 159.以下关于数组的描述正确的是C A 数组的大小是固定的,但可以有不同的类型的数组元素; B 数组的大小是可变的,但所有数组元素的类型必须相同; C 数组的大小是固定的,但所有数组元素的类型必须相同; D 数组的大小是可变的,但可以有不同的类型的数组元素; 160.在定义int a[10];之后,对a的引用正确的是A A a[9] B a[6.3] C a(6) D a[10] 161.以下对一维数组a进行不正确初始化的是A A int a[10]=(0,0,0,0);B int a[10]={};C int a[]={0}; D int a[10]={10*2}; 162.以下对字符数组进行不正确初始化的是A A static char word[]='cool '; B static char word[]={‘c’,’o’,’o’,’l’};C static char word[]={“cool ”};D static char word[]=”cool ”; 163.在执行char str[10]=”china ”;strlen(str)的结果B A 5 B 6 C 7 D 9 164.在C语言中,引用数组元素时,其数组下标的数据类型允许是B A 整型常量 B 整型表达式或整型常量 C 实型常量 D 任何类型 的表达式 165.以下程序给数组所有的元素输入数据,空处应填入(C) main() { int a[10],i=0; while(i<10)scanf(“%d”,____________);} A &a[i] B a[i++] int a=10,b=50,c=30; if(a>b)a=b; b=c; c=a; printf(“a=%d b=%d c=%dn”,a,b,c); A a=10 b=50 c=10 B a=10 b=30 c=10 C a=50 b=30 c=10 D a=50 b=30 c=50 166.有字符数组a[80],b[80],则正确的输出语句是D A puts(a,b); B printf(“%s,%s”,a[],b[]);C putchar(a,b); D puts(a);puts(b); 167.以下能正确定义字符串的语句是 D A char str[]={' 64'}; B char str=“x43”; C char str=“; D char str[]=” “; 168.以下数组定义中正确的是 D A int x[][3]={0}; B int x[2][3]={{1,2},{3,4},{5,6}}; C nt x[][3]={{1,2,3},{4,5,6}}; D int x[2][3]={1,2,3,4,5,6}; 169.要说明一个有10个int元素的数组,应当选择语句A A int a[10] B int a[2,5] C int a[ ] D int *a[10] 170.已知: int a[10];则对a数组元素引用正确的是D A a[10] B a[3.5] C a(5)D a[10-10] 171.已有定义:char a[]=”xyz“,b[]={''x'',''y'',''z''};,以下叙述中正确的是 C A 数组a和b的长度相同 B a数组长度小于b数组长度 C a数组长度大于b数组长度 D 上述说法都不对 172.以下能正确定义一维数组的选项是B A int a[5]={0,1,2,3,4,5};B char a[]={0,1,2,3,4,5};C char a={''A'',''B'',''C''};D int a[5]=”0123“; 173.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是D A 3 B 6 C 10 D 20 174.执行下面的程序段后,变量k中的值为(A)。 int k=3, s[2];s[0]=k;k=s[1]*10; A 不定值 B 33 C 30 D 10 175.设有数组定义: char array [ ]=”China“;数组 array所占的空间为C A 4个字节 B 5个字节 C 6个字节 D 7个字节 176.下列描述中不正确的是C A 字符型数组中可以存放字符串 B 可以对字符型数组进行整体输入、输出 C 可以对整型数组进行整体输入、输出 D 不能在赋值语句中通过赋值运算符”=“对字符型数组进行整体赋值 177.给出以下定义: char x[ ]=”abcdefg“; char y[ ]={''a'',''b'',''c'',''d'',''e'',''f'',''g''};则正确的叙述为C A 数组X和数组Y等价 B 数组x和数组Y的长度相同 C 数组X的长度大于数组Y的长度 D 数组X的长度小于数组Y的长度 178.定义如下变量和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是 for(i=0;i<3;i++)printf(”%d“,x[i][2-i]);C A 1 5 9 B 1 4 7 C 3 5 7 D 3 6 9 179.以下一维数组a 的正确定义是D A int a(10); B float n=10,a[n];C int n;scanf(”%d“,&n);float a[n];D #define size 10;long a[size];180.合法的数组定义是D A int a[]=”string“; B int a[5]={0,1,2,3,4,5};C vhst s=”string“; D char a[]={0,1,2,3,4,5}; 181.下列选项中,能正确定义数组的语句是D A int num[0..2008];B int num[]; C int N=2008;int num[N];D #define N 2008 int num[N]; 182.在C语言中,能实现字符串连接的函数是A A strcat()B strcmp()C strcpy() D strlen() 183.在C语言中,定义数组int a[7]={3,4,5,6,7,8,9},则a[5]的值为D A 9 B 6 C 7 D 8 184.在C语言中,定义int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},i=5,则 下列选项中不能正确引用数组元素的是A A a[2*i-12] B a[2*i-2] C a[12-i] D a[2*i] 185.在C语言中,定义 char a[]={'a','b','l','l','o'},已知字符'b'的 ASCII码为98,则 printf(”%dn“,a[0]);的值为A A 97 B a C 98 D b 186.在C语言中,有以下定义:char b[10]={''h'',''n'',''s'',''p'',''k'',''s''};,则语句 printf(”%cn“,b[1]);的结果为B A h B n C s D p 187.在C语言中,定义数组int a [12]={1,2,3,4,5,6,7,8,9,10,11,12},则a[3]的值B A 3 B 4 C 5 D 6 188.在C语言中,有以下程序main(){int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i<5){if(p[i]%2)j+=p[i];i++;}printf(”%dn“,j);}程序运行后的输出结果是A A 39 B 45 C 56 D 60 189.在C语言中,若有定义:int y=3,x[7]={1,2,3,4,5,6,7},则表达式y+=x[2]的值为A A 6 B 5 C 8 D 9 190.在C语言中,若有定义:int y=5,x[7]={1,2,3,4,5,6,7},则表达式y+=x[6]的值为D A 9 B 10 C 11 D 12 191.字符型常量在内存中存放的是A A ASCⅡ 代码 B BCD 代码 C 内部码 D 十进制码 192.下列运算符中,结合方向为自左向右的是B A ? : B ,C += D ++ 193.在C语言中运算对象必须是整型的运算符是A A % B! C / D * 194.下列关于C语言的叙述错误的是A A 大写字母和小写字母的意义相同 B 不同类型的变量可以在一个表达式中 C 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D 同一个运算符号在不同的场合可以有不同的含义 195.在C语言中,错误的int类型的常数是A A 32768 B 0 C 037 D 0xAF 196.C语句x*=y+2;还可以写成C A x=x*y+2; B x=2+y*x;C x=x*(y+2); D x=y+2*x; 197.如果有整型变量x,浮点型变量y,双精度型变量z,则表达式y*z+x+y执 行后的类型为 A A 双精度 B 浮点型 C 整型 D 逻辑型 198.设C语言中,一个int 型数据在内存中占2个字节,则unsigned int 型 数据的取值范围是C A 0—255 B 0—32767 C 0—65535 D 0--2147483647 199.以下说法不正确的D A 在C程序中,逗号运算符的优先级最低; B 在C程序中,aph和aPh是两个不同的变量; C 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变; D 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数; 200.设有float x;则x是__B__变量。 A 整型 B 实型 C 字符型 D 长型 201.若变量已正确定义并赋值,下面符合C语言语法的表达式是B A a:=b+1 B a=b=c+2 C int 18.5%3 D a=a+7=c+b 202.若有float x,y;则以下不合法的语句是B A ++x; B y=(x%2)/10;C x*=y+8;D x=y=10; 203.不合法的十六进制数是A A oxff B 0xabc C 0x11 D 0xbeef 204.现有 #define N 3;的宏定义,执行语句 i=N*3 后,i的值是C A 3 B 6 C 9 D 其它三个答案都不对 205.turbo c中int类型变量所占字节数是B A 1 B 2 C 3 D 4 206.正确的合法的定义变量的语句是B A int ab_=086; B int _ab=0xE8 C char a-b=‘1’;D float a3.b; 207.以下选项中不属于C语言的类型的是D A signed short int B unsigned long int C unsigned int D long short 208.以下叙述中错误的是 D A C程序中的#include和#define行均不是C语句 B 除逗号运算符外,赋值运算符的优先级最低 C C程序中,j++;是赋值语句 D C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算 209.正确的字符串常量是A A “ABCD” B {ABCD} C ‘ABCD’ D ABCD 210.以下选项中属于C语言的数据类型是C A 复数型 B 逻辑型 C 双精度型 D 集合型 211.以下运算符中优先级最低的运算符是D A && B & C || D = 212.以下叙述中错误的是A A 用户所定义的标识符允许使用关键字 B 用户所定义的标识符应尽量做到“见名知意” C 用户所定义的标识符必须以字母或下划线开头 D 用户定义的标识符中,大、小写字母代表不同标识 213.设有以下定义 int a=0;double b=1.25;char c=’A’;#define d 2 则下面语句中错误的是D A a++; B b++ C c++; D d++;214.下列关于单目运算符++、--的叙述中正确的是D A 它们的运算对象可以是任何变量和常量 B 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C 它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D 它们的运算对象可以是char型变量、int型变量和float型变量 215.以下选项中合法的实型常数是C A 5E2.0 B E-3 C.2E0 D 1.3E 216.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘101’为A A 字符A B 字符a C 字符e D 非法的常量 217.以下选项中合法的字符常量是B A “B” B ‘ 10’ C 68 D D 218.若变量a、i已正确定义,且i已正确赋值,合法的语句是B A a==1 B ++i; C a=a++=5; D a=int(i); 219.以下选项中合法的字符常量是B A “B” B ‘ 10’ C 68 D D 220.C语言提供的合法的数据类型关键字是B A Double B short C integer D Char 221.在C语言中,合法的长整型常数是B A 0 B 04962710 C 0.054838743 D 2.1869e10 222.表达式(int)2.5的值是A A 2 B 3 C 0 D 2.5 223.以下选项中不能作为C语言合法常量的是A A 'cd' B 0.1e+6 C ”a“ D ' 11' 224.在TC中,已知: int x=10, y=3 , z;则下列语句的输出结果是 C printf(”%dn", z=(x%y,x/y)); A 1 B 0 C 3 D 4 225.若变量a、i已正确定义,且i已正确赋值,合法的语句是(B)。 A a==1 B ++i;C a=a++=5;D a=int(i); 226.设有说明语句:char a=’72’;则变量a为A A 包含1个字符 B 包含2个字符 C 包含3个字符 D 说明不合法 ## ~~~1 下列叙述中正确的是()。程序设计就是编制程序 程序的测试必须由程序员自己去完成 程序经调试改错后还应进行再测试 程序经调试改错后不必进行再测试 ~C ~~~1 以下叙述中正确的是()。C语言的源程序不必通过编译就可以直接运行 C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C源程序经编译形成的二进制代码可以直接运行 C语言中的函数不可以单独进行编译 ~B ~~~1 下面关于算法的正确描述是()。算法就是计算的方法 算法就是解决问题的步骤 一个问题的算法是唯一的 一个问题的算法只能用一种语言设计 ~B ~~~1 对计算机进行程序控制的最小单位是()。语句 字节 指令 程序 ~C ~~~1 编制一个好的程序首先要确保它的正确性和可靠性,除此以外,通常更注重源程序的()。易使用性、易维护性和效率 易使用性、易维护性和易移植性 易理解性、易测试性和易修改性 易理解性、安全性和效率 ~B ~~~1 与高级语言相比,用低级语言(如机器语言等)开发的程序,其结果是()。 运行效率低,开发效率低 运行效率低,开发效率高 运行效率高,开发效率低 运行效率高,开发效率高 ~C ~~~1 程序设计语言的语言处理程序是一种()。系统软件 应用软件 办公软件 工具软件 ~A ~~~1 ()是常见的两类程序设计语言处理程序。 高级语言程序和低级语言程序 解释程序和编译程序 编译程序和操作系统 系统程序和应用程序 ~B ~~~1 计算机只能直接运行()。高级语言源程序 汇编语言源程序 机器语言程序 任何源程序 ~C ~~~1 将高级语言的源程序转换成可在机器上独立运行的程序的过程称为()。解释 编译 连接 汇编 ~B ~~~1 著名计算机科学家Nikiklaus Wirth提出一个公式:程序=______。数据+运算符 数据结构+算法 结构+函数 运算符+运算数 ~B ~~~1 解释程序和编译程序的主要区别之一在于______。单用户与多用户的差别 对用户程序的查错能力 机器执行的效率 是否生成目标程序 ~D ~~~1 以下叙述正确的是______。C语言比其他语言高级 C语言可以不用编译就能被计算机识别执行 C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 C语言出现的最晚、具有其他语言的一切优点 ~C ~~~2 C语言中最简单的数据类型包括()。 整型、实型、逻辑型 整型、实型、字符型 整型、字符型、逻辑型 整型、实型、逻辑型、字符型 ~B ~~~2 请选出可用作C语言用户标识符的一组标识符()。void ,define ,WORD a3_b3,_123,IF FOR,——abc , Case 2a,Do,Sizeof ~B ~~~2 C语言中合法的字符常量是()' 84' 'x43' 'ab' “ ” ~B ~~~2 下列运算符中,哪一个优先级最低? ?: = >= == ~B ~~~2 以下能正确定义且赋初值的语句是()。int n1=n2=10;char c=32;float f=f+1.1;double x=12.3e2.5;~B ~~~2 设有定义:int k=1,m=2;float f=7;则以下选项中错误的表达式是()。k=k>=k-k++ k%f k>=f>=m ~C ~~~2 设有定义:int a=2,b=3,c=4;则以下选项中值为0的表达式是()。 (!a==1)&&(!b==0)!a||b||c a&&b a||(b+b)&&(c=a)~A ~~~2 Char p[]={'a','b','c'},q[]=“abc”;printf(“%d %d %dn”,sizeof(p),sizeof(q),strlen(q));以上程序段的输出结果是()。3 4 4 3 3 3 3 4 3 4 3 4 ~C ~~~2 根据程序段判断:char a1='M',a2='m'; printf(“%cn”,(a1,a2));以下叙述中正确的是()。程序输出大写字母M 程序输出小写字母m 格式说明符不足,编译出错 程序运行时产生出错信息 ~B ~~~2 设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为()。1 2 3 0 ~B ~~~2 有以下程序段 char c1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);当运行时输入:a<回车>后,以下叙述中正确的是()。 变量c1将被赋字符a,c2被赋回车符 程序将等待用户输入第二个字符 变量c1被赋字符a,c2中仍是原有字符2 变量c1被赋字符a,c2中将无确定值 ~A ~~~2 表达式:10!=9的值是()。true 非零值 0 1 ~D ~~~2 在c语言中,运算对象必须是整型数的运算符是()。% %和 ** ~A ~~~2 以下语句的输出结果是_____。printf(“%dn”,NULL);不确定的(因变量无定义)0-1 1 ~B ~~~2 能正确表示a和b同时为正或同时为负的逻辑表达式是________。 (a>=0||b>=0)&&(a<0||b<0)(a>=0&&b>=0)&&(a<0&&b<0)(a+b>0)&&(a+b<=0)a*b>0 ~D ~~~2 表示关系x>y≥z,则正确的c语言表达式为________。x>y>=z (x>y)&(y>=z)(y 用户所定义的标识符应尽量作到“见名知意” 用户所定义的标识符必须以字母或下划线开头 用户所定义的标识符中,大小写 字母代表不同标识 ~A ~~~2 若int a=3,则执行完表达式a+=a-=a*a后,a的值是()。-3-12 6 ~C ~~~2 设x、y、z和k都是int型变量,则 执 行 表 达 式 : x=(y=4,z=16,k=32)后,x的值为()。4 16 32 52 ~C ~~~2 设有如下的变量定义:int i=8, k, a, b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是()。 a+=a-=(b=4)*(a=3)x%(-3);a=a*3=2 y=float(i)~A ~~~2 假定有以下变量定义:int k=7,x=12;则能使值为3 的表达式是()。x%=(k%=5)x%=(k-k%5)x%=k-k%5(x%=k)-(k%=5)~D ~~~2 以下叙述中正确的是()。输入项可以是一个实型常量,如:scanf(“%f”,3.5); 只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(“a=%d,b=%d”);当输入一全实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(“%4,2f”,&.f);当输入数据时,必须指明变量地址,例如:scanf(“%f”,&f);~D ~~~2 设 x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是()。 把x和y按从大到小排列 把x和y按从小到大排列 无确定结果 交换x和y中的值 ~D ~~~2 以下程序段的输出结果是:()。int a=12,b=12;printf(“%d %dn”,--a,++b); 10 10 12 12 11 10 11 13 ~D ~~~2 编制好的程序时,应强调良好的编程风格,如,选择标识符的名字时应考虑()。 名字长度越短越好,以减少源程序的输入量 多个变量共用一个名字,以减少 变量名的数目 选择含义明确的名字,以正确提示所代表的实体 尽量用关键字作名字,以使名字 标准化 ~C ~~~3 一个C程序的执行是从()。本程序的main函数开始,到main函数的结束 本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束 本程序文件的main开始,到本程序文件的最后一个函数的结束 本程序文件的第一个函数开始,到本程序文件的main函数的结束 ~A ~~~3 以下叙述正确的是()。在C程序中main函数必须位于程序的最前面 C程序的每行中只能写一条语句 C语言本身没有输入输出语句 在对一个C程序进行编译的过程中,可发现注释中的错误 ~C ~~~3 C语言规定,在一个源程序中,main函数的位置()。必须在最开始 必须在系统调用的库函数的后面 可以任意 必须在最后 ~C ~~~3 结构化程序设计所规定的三种基本结构是()。主程序、子程序、函数 树形、网形、环形 顺序、选择、循环 输入、处理、输出 ~C ~~~4 以下叙述中错误的是()。C语句必须以分号结束 复合语句在语法上被看作一条语句 空语句出现在任何位置都不会影响程序运行 赋值表达式末尾加分号就构成赋值语句 ~C ~~~4 当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是()。K%2 K%2==1(K%2)!=0!K%2==1 ~D ~~~4 下面有关for循环的正确描述是()。 for循环只能用于循环次数已经确定的情况。 for循环是先执行循环体语句,后进行循环条件判断。在for语句中,不能用break语句跳出循环体。 for循环体语句中,可以包含多条语句,但要用花括号括起来。~D ~~~4 设变量已正确定义,则以下能正确计算f=n!的程序段是()。f=0;for(i=1;i<=n;i++)f*=n;f=0;for(i=1;i<=n;i++)f*=i;f=1;for(i=n;i>1;i++)f*=i;f=1;for(i=n;i>=2;i--)f*=i;~D ~~~4 C语言中下列叙述正确的是()。不能使用do-while语句构成的循环 do-while语句构成的循环,必须用break语句才能退出 do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 do-while语句构成的循环,当while语句中的表达式值为零时 结束循环 ~D ~~~4 以下程序段输出结果是:()。int m=5;if (m++>5) printf(“%dn”,m);else printf(“%dn”,m--);7 6 5 4 ~B ~~~4 当执行以下程序段时:()。x=-1;do {x=x*x;}while(!x);循环体将执行两次 循环体将执行一次 循环体将执行无限次 系统将提示有语法错误 ~B ~~~4 执行以下程序段后,输出的结果是()。int y=10;do {y--;} while (--y);print(“%dn”,y--);-1 1 8 0 ~D ~~~4 为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。缩排位置相同的if 与其之前未配对的if 与其之前未配对的最近的if 同一行上的if ~C ~~~4 有 以 下 程 序 int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(“%dn”,s);执行后的输出结果是()。自然数1~9的累加和 自然数1~10的累加和 自然数1~9中的奇数之和 自然数1~10中的偶数之和 ~D ~~~5 以下关于函数的叙述中正确的是()。 每个函数都可以被其他函数调用(包括main函数)每个函数都可以被单独编译 每个函数都可以单独运行 在一个函数内部可以定义另一个函数 ~B ~~~5 设函数FUN的定义形式为:void fun(char ch,float x){„„„„„}以下对函数的调用语句中,正确的是()。fun(“abc”,3.0);t=fun(“abc”,16.5);fun('65',2.8);fun(32,32);~D ~~~5 在C程序中,若对函数类型未加说明,则函数的隐含类型为()。int double void char ~A ~~~5 简单变量做实参时,它相对应形参之间的数据传递方式是()。地址传递 单向值传递 由实参传给形参,再由形参传回给实参 由用户指定传递方式 ~B ~~~5 建立函数的目的选项是()。 提高程序的执行效率 提高程序的可读性 减少程序的篇幅 减少程序文件所占内存 ~B ~~~5 下面关于递归的说法错误的是()。 每次当一个递归函数被调用时, 程序首先应该检查其些基本的条件是否满足了, 例如某个参数的值等于零, 函数应停止递归; 每次当函数被递归调用时, 传递给函数一个或多个参数, 应该以某种方式变得“更简单”;一般情况下, 递归方法比迭代方法快; 递归函数的目的是执行一系列调用, 一直到达某一点, 序列终止。~C ~~~5 下面说法正确的是()。函数定义可以嵌套,但函数调用不能嵌套 函数定义不可以嵌套,但函数调用可以嵌套 函数定义和调用均不能嵌套 函数定义和调用均可以嵌套 ~B ~~~5 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。 函数调用可以作为独立的语句存在 函数调用可以作为一个函数的实参 函数调用可以出现在表达式中 函数调用可以作为一个函数的形参 ~D ~~~5 以下关于说法正确的是()。实参和与其对应的形参各占用独立的存储单元 实参与其对应的形参共占用一个存储单元 实参和与其对应的形参同名时才共占用存储单元 形参虚拟的,不占用存储单元 ~A ~~~5 若调用一个函数(无全局、指针、静态变量),且此函数中没有return语句,则关于该函数正确的说法是()。无返回值 返回若干个系统默认值 能返回一个用户所希望的函数值 返回一个不确定的值 ~A ~~~5 在c语言中以下不正确的说法是()。 实参可以是常量、变量或表达式 形参可以是常量、变量或表达式 实参可以为任意类型 形参应与其对应的实参类型一致 ~B ~~~5 下列程序段的输出结果是()。#define M(x,y) x*y printf(“%d”,M(10+2,2));24 50 32 ~A ~~~5 若程序中定义了以下函数 :double myadd(double a,double b){ return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。double myadd(double a,b);double myadd(double,double);double myadd(double b,double a);double myadd(double x,double y);~A ~~~5 程序设计中,以下错误的描述是()。 在函数之外定义的变量称为外部变量,外部变量是全局变量 在一个函数中既可以使用本函数中的局部变量,又可以使用外部变量 外部变量定义和外部变量说明的含义不同 若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用 ~A ~~~5 程序设计中,建立函数的首要目的是()。 减少程序的运行时间 提高程序的可读性 减少程序的篇幅 减少程序运行时文件所占内存 ~B ~~~5 程序设计中,下列结论只有一个是正确的,它是()。在递归函数中使用自动变量要十分小心,因为在递归过程中,不同层次的同名变量在赋值的时候一定会相互影响 在递归函数中使用自动变量要十分小心,因为在递归过程中,不同层次的同名变量在赋值的时候可能会相互影响 在递归函数中使用自动变量不必担心,因为在递归过程中,不 同层次的同名变量在赋值的时候肯定不会相互影响 在程序设计语言中无法得出以上结论之一 ~C ~~~5 下面关于变量的说法错误的是()。 全局变量是所有在函数和类外定义的变量 局部变量是在块或函数中定义的变量 在同一作用域内变量不能同名 变量作用域不能重叠 ~D ~~~5 下面关于变量的生存周期的说法错误的是()。 全局变量的生存周期从程序运行开始到程序结束 局部变量的生存周期从块或函数的开始到块或函数的结束 静态局部变量的生存周期与全局变量相同 静态全局变量的作用域是整个程序 ~D ~~~6 下列数据结构中,能用二分法进行查找的是()。 顺序存储的有序线性表(数组)线性链表 二叉链表 有序线性链表 ~A ~~~6 数组名作为参数传递给函数,作为实在参数的数组名被处理为()。 该数组的元素个数 该数组中各元素的值 该数组的首地址 以上答案均不对 ~C ~~~6 若使用一维数组名作函数实参,则以下正确的说法是()。无须在主调函数中说明此数组的大小 实参数组类型与形参数组类型可以不匹配 在被调用函数中,不需要考虑形参数组的大小 实参数组名与形参数组名必须一致 ~C ~~~6 函 数 调 用 strcat(strcpy(str1,str2),str3)的功能是()。 将串str1复制到串str2中后在连接到串str3之后 将串str1连接到串str2之后再复制到串str3之后 将串str2复制到串str1中后再将串str3连接到串str1之后 将串str2连接到串str1中后再将串str1复制到串str3中 ~C ~~~6 下列描述中不正确的是()。字符型数组中可以存放字符串 可以对字符型数组进行整体输入、输出 可以对整型数组进行整体输入、输出 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 ~C ~~~6 设有数组定义: char array [ ]=“HELLO”;则数组 array的长度为()。4 5 6 7 ~C ~~~6 以下不能正确进行字符串赋初值的语句是()。char str[5]=“good!”;char str[]=“good!”;char *str=“good!”;char str[5]={'g','o','o','d'};~A ~~~6 当调用函数时,实参是一个数组名,则向函数传送的是()。数组的长度 数组的首地址 数组每一个元素的地址 数组每个元素中的值 ~B ~~~6 下面正确进行字符串赋值操作的语句是()。 char s[5]=[“ABCDDE”];char s[4]={'A','B','C','D','E'};char *s;s=“ABCDEF”;char *s;scanf(“%s”,s);~C ~~~6 有以下程序:char a[]=“abcdefg”,b[10]=“abcdefg”;printf(“%d %dn”,sizeof(a),sizeof(b));执行后输出结果是()7 7 8 8 8 10 10 10 ~C ~~~6 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。 char s[10]=“abcdefg”;char t[]=“abcdefg”,*s=t; char s[10];s=“abcdefg”;char s[10];strcpy(s,“abcdefg”);~C ~~~6 若有以下程序段:int a[5] = {1,2,3,4,5};int *p = a;则以下说法正确的是() a可以做自增运算,即有a++; p可以做自增运算,即有p++; a和p都可以做自增运算,即有a++和p++; a和p都不能做自增运算。~B ~~~7 若有语句:char *LINE[5];以下叙述中正确的是()。定义LINE是一个数组,每个数组元素是一个基类型为char的指针变量 定义LINE是一个指针变量,该变量可以指向一个长度为5的字符型数组 定义LINE是一个指针数组 定义LINE是一个指向字符型函数的指针 ~A ~~~7 设 有 定 义,int n1=0,n2,*p=&n2,*q=&n1;以下赋值语句中与n2=n1;语句等价是()。*p=*q;p=q;*p=&n1;p=*q;~A ~~~7 若有定义:int x=0,*p=&x;则语句printf(“%dn”,*p);的输出结果是()。随机值 0 x的地址 p的地址 ~B ~~~7 有以下程序: main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p-2; printf(“%dn”,*p+*q);} 程序运行后的输出结果是()。16 10 8 6 ~D ~~~7 已定义以下函数: int fun(int *p){ return *p;} 该函数的返回值是()。不确定的值 形参p中存放的值 形参p所指存储单元中的值 形参p的地址值 ~C ~~~7 若己定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()。p+l a+l a++ ++p ~C ~~~7 若有说明语句:int a,b,c, *d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()。 scanf(“%d%d%d”,&a,&b,d);scanf(“%d%d%d”,&a,&b,&d);scanf(“%d%d%d”,a,b,d);scanf(“%d%d%d”,a , b,*d);~A ~~~7 设已有定义: char *st=“how are you”;下列程序段中正确的是()。char a[11], *p=a;strcpy(p,&st[4]);char a[11];strcpy(++a, st);char a[11];a=st;char a[],*p;strcpy(p=&a[1],st+2);~D ~~~3 以下叙述中错误的是()。C语言中对二进制文件的访问速度比文本文件快 C语言中,随机文件以二进制代码形式存储数据 语句 FIEL FP ;定义了一个名为FP的文件指针 C语言中的文本文件以ASCII码形式存储数据 ~C ~~~3 通常,文件的逻辑结构可以分为无结构的______和有结构的记录式文件。堆文件 流式文件 索引文件 直接(Hash)文件 ~B ~~~3 通常,文件的逻辑结构可以分为两大类:无结构的流式文件和有结构的______文件。记录式文件 流式文件 索引文件 直接(Hash)文件 ~A ~~~3 在文件系统中最大的数据单位是()。数据项 记录 文件 数据库 ~C 1、把400~448这49个自然数按行赋给二维数组arry[7][7]。 #include { int arry[7][7]; int i,j,k=(1);for(i=0;i<7;i++)for(j=0;j<7;j++){ a[i][j]=k;(2);} } 答案:(1)400(2)k=k+1 2、把400-463这64个自然数按列赋给二维数组arry[8][8]。#include “math.h” #include int arry[8][8]; int i,j,k=(1);for(i=0;i<8;i++)for(j=0;j<8;j++){(2)=k;k=k+1;} } 答案:(1)400(2)a[j][i] 3、编写程序,建立一个20*20的矩阵,该矩阵主对角线元素为其行号(行号从1到20),其它元素均为0。 #include int a[20][20]; int i,j; for(i=0;i<20;i++) for(j=0;j<20;j++) if((1)) a[i][j] =i+1; else a[i][j]=(2);} 答案:(1)i==j(2)0 4、使用字符输入函数getchar()来进行字符串的输入。#include 作 业(使用指针、数组、函数 完成) 1.编写一个通用函数,该函数可以实现判断:一个含有五位数字的整数是否是回文数。回文数的含义是从左向右与从右向左看,数是相同的。如:23732是回文数,而23564则不是。编写主程序调用该函数实现求所有5位数字中满足条件的数的个数。#include if((w==g)&&(q==s)) return 1; else return 0; } void main(){ int count=0;int i; for(i=10000;i<=99999;i++) if(Judge(i))count++;printf(“%dn”,count);} 2.编写一个通用函数,该函数可以实现对数值型数组的倒序。倒序的含义是把数组的元素值前后颠倒。例数组:20,19,18,15,13,10倒序的结果为:10,13,15,18,19,20。编写主程序,数组初始化方式不限,并输出,然后调用该函数实现倒序后再输出倒序的结果。#include void Transfer(double *b,int n){ double temp;double *i=b;double *j=b+n-1;while(j>i){ temp=*i; *i=*j; *j=temp; i++; j--;} } void main(){ double array[N]={20,19,18,15,13,10};int i;for(i=0;i printf(“%.0ft”,array[i]);Transfer(array,N);printf(“n”);for(i=0;i printf(“%.0ft”,array[i]); printf(“n”);} 3.编写一个通用函数,该函数可以实现求数值型二维数组的上三角各元素的平方根的和(即先对上三角各元素求平方根,然后再对平方根求和)。编写主程序调用该函数,计算数组A的上三角元素的平方根的和。上三角的含义:左上部分(包含对角线元素),如下二维数组的0元素区域即为上三角。0 0 0 0 0 0 0 0 0 7 0 0 0 3 8 0 0 5 9 3 0 2 4 6 7 数组A的数据如下: 15 45 56 73 11 34 74 85 54 70 56 98 56 89 67 98 54 83 12 59 77 87 74 48 33 #include double Cal(double *p,int n){ int i,j;double sum=0;for(i=0;i for(j=0;j sum+=sqrt(*(p+i*n+j)); return sum; } void main(){ double a[5][5]={15, 45,56 , 73 , 11,34 , 74 , 85 ,54 , 70,56, 98 , 56 , 89 , 67, 98, 54 , 83, 12 , 59,77 , 87, 74, 48, 33};double rootsum=Cal(a[0],5);//或 者 double rootsum=Cal(&a[0][0],5); printf(“%fn”,rootsum) ;} /*系统把二维数组看成数组元素为一维数组的一维数组,即对于二维数组a[2][3],系统会看成由两个一维数组a[0]和a[1]组成,而a[0]和a[1]中分别包含三个元素(a[0]和a[1]为一维数组名)。所以不能把二维数组名(类似于二级指针,不完全相同)赋给一个普通的指针变量,但能把a[0]赋给一个普通的指针变量(a[0]不是一个具体的元素,而是元素a[0][0]的地址)*/ 4.编写一个通用函数,该函数可以实现统计一维数组中小于数组元素平均值的元素个数。编写主程序调用该函数,统计数组A(数据为:3521,5647,6849,5962,4567,2361,1247,5241,1246)中小于平均值的元素个数。#include int num(double *p,int num){ int count=0;double sum=0,avg=0;for(int i=0;i sum+=*(p+i);avg=sum/num;for(i=0;i if(*(p+i) count++; return count;{ } } void main()double a[9]={3521,5647,6849,5962,4567,2361,1247,5241,1246}; } 5.编写一个通用函数,该函数可以实现把一个十进制的正整数转换成七进制。例如把88转换成154。编写主程序调用该函数,把整数123455转换成七进制并输出。 注:把一个十进制的整数转换成七进制的方法是:把十进制数当作被除数,用7除,直到商为0为至,然后把余数倒序即可。例88除7的余数依次是4、5、1,则其七进制为:154。#include } void main(){ int num;printf(“Please input an scanf(”%d“,&num);Transfer(num);int a[100];int count=0;while(num!=0){ } for(int printf(”%d“,a[i]);a[count++]=num%7;num=num/7;int count =num(a,9);printf(”%dn“,count);i=count-1;i>=0;i--)integer:n”); ### ~~~1 下列叙述中正确的是()。程序设计就是编制程序 程序的测试必须由程序员自己去完成程序经调试改错后还应进行再测试 程序经调试改错后不必进行再测试 ~C ~~~1 以下叙述中正确的是()。 C语言的源程序不必通过编译就可以直接运行 C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C源程序经编译形成的二进制代码可以直接运行 C语言中的函数不可以单独进行编译 ~B ~~~1 下面关于算法的正确描述是()。算法就是计算的方法 算法就是解决问题的步骤 一个问题的算法是唯一的 一个问题的算法只能用一种语言设计 ~B ~~~1 对计算机进行程序控制的最小单位是()。语句 字节 指令 程序 ~C ~~~1 编制一个好的程序首先要确保它的正确性和可靠性,除此以外,通常更注重源程序的()。易使用性、易维护性和效率 易使用性、易维护性和易移植性 易理解性、易测试性和易修改性 易理解性、安全性和效率 ~B ~~~1 与高级语言相比,用低级语言(如机器语言等)开发的程序,其结果是()。运行效率低,开发效率低 运行效率低,开发效率高 运行效率高,开发效率低 运行效率高,开发效率高 ~C ~~~1 程序设计语言的语言处理程序是一种()。系统软件 应用软件 办公软件 工具软件 ~A ~~~1 ()是常见的两类程序设计语言处理程序。高级语言程序和低级语言程序 解释程序和编译程序 编译程序和操作系统 系统程序和应用程序 ~B ~~~1 计算机只能直接运行()。高级语言源程序 汇编语言源程序 机器语言程序 任何源程序 ~C ~~~1 将高级语言的源程序转换成可在机器上独立运行的程序的过程称为()。解释 编译 连接 汇编 ~B ~~~1 著名计算机科学家Nikiklaus Wirth提出一个公式:程序=______。数据+运算符 数据结构+算法 结构+函数 运算符+运算数 ~B ~~~1 解释程序和编译程序的主要区别之一在于______。 单用户与多用户的差别 对用户程序的查错能力 机器执行的效率 是否生成目标程序 ~D ~~~1 以下叙述正确的是______。C语言比其他语言高级 C语言可以不用编译就能被计算机识别执行 C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 C语言出现的最晚、具有其他语言的一切优点 ~C ~~~2 C语言中最简单的数据类型包括()。 整型、实型、逻辑型 整型、实型、字符型 整型、字符型、逻辑型 整型、实型、逻辑型、字符型 ~B ~~~2 请选出可用作C语言用户标识符的一组标识符()。void ,define ,WORD a3_b3,_123,IF FOR,——abc , Case 2a,Do,Sizeof ~B ~~~2 C语言中合法的字符常量是() ' 84' 'x43' 'ab' “ ” ~B ~~~2 下列运算符中,哪一个优先级最低? ?: = >= == ~B ~~~2 以下能正确定义且赋初值的语句是()。 int n1=n2=10;char c=32;float f=f+1.1;double x=12.3e2.5;~B ~~~2 设有定义:int k=1,m=2;float f=7;则以下选项中错误的表达式是()。 k=k>=k-k++ k%f k>=f>=m ~C ~~~2 设有定义:int a=2,b=3,c=4;则以下选项中值为0的表达式是()。 (!a==1)&&(!b==0)!a||b||c a&&b a||(b+b)&&(c=a)~A ~~~2 Char p[]={'a','b','c'},q[]=“abc”;printf(“%d %d %dn”,sizeof(p),sizeof(q),strlen(q));以上程序段的输出结果是()。4 4 3 3 3 3 4 3 4 3 4 ~C ~~~2 根据程序段判断:char a1='M',a2='m';printf(“%cn”,(a1,a2));以下叙述中正确的是()。 程序输出大写字母M 程序输出小写字母m 格式说明符不足,编译出错 程序运行时产生出错信息 ~B ~~~2 设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为()。1 2 0 ~B ~~~2 有以下程序段 char c1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);当运行时输入:a<回车>后,以下叙述中正确的是()。 变量c1将被赋字符a,c2被赋回车符 程序将等待用户输入第二个字符 变量c1被赋字符a,c2中仍是原有字符2 变量c1被赋字符a,c2中将无确定值 ~A ~~~2 表达式:10!=9的值是()。 true 非零值 0 ~D ~~~2 在c语言中,运算对象必须是整型数的运算符是()。% %和 ** ~A ~~~2 以下语句的输出结果是_____。printf(“%dn”,NULL); 不确定的(因变量无定义)0 ~B ~~~2 能正确表示a和b同时为正或同时为负的逻辑表达式是________。 (a>=0||b>=0)&&(a<0||b<0) (a>=0&&b>=0)&&(a<0&&b<0)(a+b>0)&&(a+b<=0) a*b>0 ~D ~~~2 表示关系x>y≥z,则正确的c语言表达式为________。x>y>=z(x>y)&(y>=z) (y 有语句scanf(“%d,%d”,&a,&b);要使变量a、b分别得23、45,则正确的输入形式为_______。23 45 23,45 23;45 2345 ~B ~~~2 以下能定义为用户标识符的是____。34 e# int name ~D ~~~2 下列程序段的运行结果是______。int a=2, c=5;printf(“a=%d, b=%dn”,a, c); a=%2, b=%5 a=2, b=5 a=d, b=d a=%d, b=%d ~B ~~~2 英文小写字母c的ASCII码为99, 英文大写字母C的ASCII码为______。50 ~D ~~~2 下列叙述中错误的是()。 用户所定义的标识符允许作到使用关键字 用户所定义的标识符应尽量作到“见名知意” 用户所定义的标识符必须以字母或下划线开头 用户所定义的标识符中,大小写字母代表不同标识 ~A ~~~2 若int a=3,则执行完表达式a+=a-=a*a后,a的值是()。 -3 9 -12 ~C ~~~2 设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为()。4 ~C ~~~2 设有如下的变量定义:int i=8, k, a, b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是()。a+=a-=(b=4)*(a=3)x%(-3);a=a*3=2 y=float(i)~A ~~~2 假定有以下变量定义:int k=7,x=12;则能使值为3 的表达式是()。x%=(k%=5)x%=(k-k%5)x%=k-k%5(x%=k)-(k%=5)~D ~~~2 以下叙述中正确的是()。 输入项可以是一个实型常量,如:scanf(“%f”,3.5);只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(“a=%d,b=%d”);当输入一全实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(“%4,2f”,&.f);当输入数据时,必须指明变量地址,例如:scanf(“%f”,&f);~D ~~~2 设 x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是()。把x和y按从大到小排列 把x和y按从小到大排列 无确定结果 交换x和y中的值 ~D ~~~2 以下程序段的输出结果是:()。int a=12,b=12;printf(“%d %dn”,--a,++b); 10 10 12 12 11 10 11 13 ~D ~~~2 编制好的程序时,应强调良好的编程风格,如,选择标识符的名字时应考虑()。名字长度越短越好,以减少源程序的输入量 多个变量共用一个名字,以减少变量名的数目 选择含义明确的名字,以正确提示所代表的实体 尽量用关键字作名字,以使名字标准化 ~C ~~~3 一个C程序的执行是从()。 本程序的main函数开始,到main函数的结束 本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束 本程序文件的main开始,到本程序文件的最后一个函数的结束 本程序文件的第一个函数开始,到本程序文件的main函数的结束 ~A ~~~3 以下叙述正确的是()。在C程序中main函数必须位于程序的最前面 C程序的每行中只能写一条语句 C语言本身没有输入输出语句 在对一个C程序进行编译的过程中,可发现注释中的错误 ~C ~~~3 C语言规定,在一个源程序中,main函数的位置()。必须在最开始 必须在系统调用的库函数的后面 可以任意 必须在最后 ~C ~~~3 结构化程序设计所规定的三种基本结构是()。主程序、子程序、函数 树形、网形、环形 顺序、选择、循环 输入、处理、输出 ~C ~~~4 以下叙述中错误的是()。 C语句必须以分号结束 复合语句在语法上被看作一条语句 空语句出现在任何位置都不会影响程序运行 赋值表达式末尾加分号就构成赋值语句 ~C ~~~4 当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是()。 K%2 K%2==1(K%2)!=0!K%2==1 ~D ~~~4 下面有关for循环的正确描述是()。for循环只能用于循环次数已经确定的情况。 for循环是先执行循环体语句,后进行循环条件判断。在for语句中,不能用break语句跳出循环体。 for循环体语句中,可以包含多条语句,但要用花括号括起来。~D ~~~4 设变量已正确定义,则以下能正确计算f=n!的程序段是()。 f=0;for(i=1;i<=n;i++)f*=n;f=0;for(i=1;i<=n;i++)f*=i;f=1;for(i=n;i>1;i++)f*=i;f=1;for(i=n;i>=2;i--)f*=i;~D ~~~4 C语言中下列叙述正确的是()。 不能使用do-while语句构成的循环 do-while语句构成的循环,必须用break语句才能退出 do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 do-while语句构成的循环,当while语句中的表达式值为零时结束循环 ~D ~~~4 以下程序段输出结果是:()。int m=5;if(m++>5)printf(“%dn”,m);else printf(“%dn”,m--);7 6 5 4 ~C ~~~4 当执行以下程序段时:()。x=-1;do {x=x*x;}while(!x);循环体将执行两次 循环体将执行一次 循环体将执行无限次 系统将提示有语法错误 ~B ~~~4 执行以下程序段后,输出的结果是()。int y=10;do {y--;} while(--y);print(“%dn”,y--);-1 1 8 0 ~D ~~~4 为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。缩排位置相同的if 与其之前未配对的if 与其之前未配对的最近的if 同一行上的if ~C ~~~4 有以下程序int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(“%dn”,s);执行后的输出结果是()。自然数1~9的累加和 自然数1~10的累加和 自然数1~9中的奇数之和 自然数1~10中的偶数之和 ~D ~~~5 以下关于函数的叙述中正确的是()。 每个函数都可以被其他函数调用(包括main函数) 每个函数都可以被单独编译 每个函数都可以单独运行 在一个函数内部可以定义另一个函数 ~B ~~~5 设函数FUN的定义形式为:void fun(char ch,float x){„„„„„}以下对函数的调用语句中,正确的是()。 fun(“abc”,3.0);t=fun(“abc”,16.5);fun('65',2.8); fun(32,32);~D ~~~5 在C程序中,若对函数类型未加说明,则函数的隐含类型为()。 int double void char ~A ~~~5 简单变量做实参时,它相对应形参之间的数据传递方式是()。 地址传递 单向值传递 由实参传给形参,再由形参传回给实参 由用户指定传递方式 ~B ~~~5 建立函数的目的选项是()。 提高程序的执行效率 提高程序的可读性 减少程序的篇幅 减少程序文件所占内存 ~B ~~~5 下面关于递归的说法错误的是()。 每次当一个递归函数被调用时, 程序首先应该检查其些基本的条件是否满足了, 例如某个参数的值等于零, 函数应停止递归; 每次当函数被递归调用时, 传递给函数一个或多个参数, 应该以某种方式变得“更简单”;一般情况下, 递归方法比迭代方法快; 递归函数的目的是执行一系列调用, 一直到达某一点, 序列终止。 ~C ~~~5 下面说法正确的是()。 函数定义可以嵌套,但函数调用不能嵌套 函数定义不可以嵌套,但函数调用可以嵌套 函数定义和调用均不能嵌套 函数定义和调用均可以嵌套 ~B ~~~5 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。 函数调用可以作为独立的语句存在 函数调用可以作为一个函数的实参 函数调用可以出现在表达式中 函数调用可以作为一个函数的形参 ~D ~~~5 以下关于说法正确的是()。 实参和与其对应的形参各占用独立的存储单元 实参与其对应的形参共占用一个存储单元 实参和与其对应的形参同名时才共占用存储单元 形参虚拟的,不占用存储单元 ~A ~~~5 若调用一个函数(无全局、指针、静态变量),且此函数中没有return语句,则关于该函数正确的说法是()。 无返回值 返回若干个系统默认值 能返回一个用户所希望的函数值 返回一个不确定的值 ~A ~~~5 在c语言中以下不正确的说法是()。 实参可以是常量、变量或表达式 形参可以是常量、变量或表达式 实参可以为任意类型 形参应与其对应的实参类型一致 ~B ~~~5 下列程序段的输出结果是()。#define M(x,y)x*y printf(“%d”,M(10+2,2));14 24 50 32 ~A ~~~5 若程序中定义了以下函数:double myadd(double a,double b){ return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。double myadd(double a,b);double myadd(double,double);double myadd(double b,double a);double myadd(double x,double y);~A ~~~5 程序设计中,以下错误的描述是()。 在函数之外定义的变量称为外部变量,外部变量是全局变量 在一个函数中既可以使用本函数中的局部变量,又可以使用外部变量 外部变量定义和外部变量说明的含义不同 若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用 ~A ~~~5 程序设计中,建立函数的首要目的是()。减少程序的运行时间 提高程序的可读性 减少程序的篇幅 减少程序运行时文件所占内存 ~B ~~~5 程序设计中,下列结论只有一个是正确的,它是()。 在递归函数中使用自动变量要十分小心,因为在递归过程中,不同层次的同名变量在赋值的时候一定会相互影响 在递归函数中使用自动变量要十分小心,因为在递归过程中,不同层次的同名变量在赋值的时候可能会相互影响 在递归函数中使用自动变量不必担心,因为在递归过程中,不同层次的同名变量在赋值的时候肯定不会相互影响 在程序设计语言中无法得出以上结论之一 ~C ~~~5 下面关于变量的说法错误的是()。全局变量是所有在函数和类外定义的变量 局部变量是在块或函数中定义的变量 在同一作用域内变量不能同名 变量作用域不能重叠 ~D ~~~5 下面关于变量的生存周期的说法错误的是()。全局变量的生存周期从程序运行开始到程序结束 局部变量的生存周期从块或函数的开始到块或函数的结束 静态局部变量的生存周期与全局变量相同 静态全局变量的作用域是整个程序 ~D ~~~6 下列数据结构中,能用二分法进行查找的是()。 顺序存储的有序线性表(数组)线性链表 二叉链表 有序线性链表 ~A ~~~6 数组名作为参数传递给函数,作为实在参数的数组名被处理为()。 该数组的元素个数 该数组中各元素的值 该数组的首地址 以上答案均不对 ~C ~~~6 若使用一维数组名作函数实参,则以下正确的说法是()。 无须在主调函数中说明此数组的大小 实参数组类型与形参数组类型可以不匹配 在被调用函数中,不需要考虑形参数组的大小 实参数组名与形参数组名必须一致 ~C ~~~6 函数调用strcat(strcpy(str1,str2),str3)的功能是()。 将串str1复制到串str2中后在连接到串str3之后 将串str1连接到串str2之后再复制到串str3之后 将串str2复制到串str1中后再将串str3连接到串str1之后 将串str2连接到串str1中后再将串str1复制到串str3中 ~C ~~~6 下列描述中不正确的是()。字符型数组中可以存放字符串 可以对字符型数组进行整体输入、输出 可以对整型数组进行整体输入、输出 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 ~C ~~~6 设有数组定义: char array [ ]=“HELLO”;则数组 array的长度为()。5 6 ~C ~~~6 以下不能正确进行字符串赋初值的语句是()。char str[5]=“good!”;char str[]=“good!”;char *str=“good!”;char str[5]={'g','o','o','d'};~A ~~~6 当调用函数时,实参是一个数组名,则向函数传送的是()。数组的长度 数组的首地址 数组每一个元素的地址 数组每个元素中的值 ~B ~~~6 下面正确进行字符串赋值操作的语句是()。char s[5]=[“ABCDDE”];char s[4]={'A','B','C','D','E'};char *s;s=“ABCDEF”;char *s;scanf(“%s”,s);~C ~~~6 有以下程序:char a[]=“abcdefg”,b[10]=“abcdefg”;printf(“%d %dn”,sizeof(a),sizeof(b));执行后输出结果是()7 7 8 8 8 10 10 10 ~C ~~~6 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。char s[10]=“abcdefg”;char t[]=“abcdefg”,*s=t;char s[10];s=“abcdefg”;char s[10];strcpy(s,“abcdefg”);~C ~~~6 若有以下程序段:int a[5] = {1,2,3,4,5};int *p = a;则以下说法正确的是()a可以做自增运算,即有a++; p可以做自增运算,即有p++; a和p都可以做自增运算,即有a++和p++; a和p都不能做自增运算。 ~B ~~~7 若有语句:char *LINE[5];以下叙述中正确的是()。 定义LINE是一个数组,每个数组元素是一个基类型为char的指针变量 定义LINE是一个指针变量,该变量可以指向一个长度为5的字符型数组 定义LINE是一个指针数组 定义LINE是一个指向字符型函数的指针 ~A ~~~7 设有定义,int n1=0,n2,*p=&n2,*q=&n1;以下赋值语句中与n2=n1;语句等价是()。 *p=*q;p=q;*p=&n1;p=*q;~A ~~~7 若有定义:int x=0,*p=&x;则语句printf(“%dn”,*p);的输出结果是()。 随机值 0 x的地址 p的地址 ~B ~~~7 有以下程序: main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p-2;printf(“%dn”,*p+*q);} 程序运行后的输出结果是()。16 10 8 6 ~D ~~~7 已定义以下函数: int fun(int *p){ return *p;} 该函数的返回值是()。 不确定的值 形参p中存放的值 形参p所指存储单元中的值 形参p的地址值 ~C ~~~7 若己定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()。 p+l a+l a++ ++p ~C ~~~7 若有说明语句:int a,b,c, *d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()。 scanf(“%d%d%d”,&a,&b,d);scanf(“%d%d%d”,&a,&b,&d);scanf(“%d%d%d”,a,b,d);scanf(“%d%d%d”,a , b,*d);~A ~~~7 设已有定义: char *st=“how are you”;下列程序段中正确的是()。char a[11], *p=a;strcpy(p,&st[4]);char a[11];strcpy(++a, st);char a[11];a=st;char a[], *p;strcpy(p=&a[1],st+2);~D ~~~3 以下叙述中错误的是()。 C语言中对二进制文件的访问速度比文本文件快 C语言中,随机文件以二进制代码形式存储数据 语句 FIEL FP ;定义了一个名为FP的文件指针 C语言中的文本文件以ASCII码形式存储数据 ~C ~~~3 通常,文件的逻辑结构可以分为无结构的______和有结构的记录式文件。堆文件 流式文件 索引文件 直接(Hash)文件 ~B ~~~3 通常,文件的逻辑结构可以分为两大类:无结构的流式文件和有结构的______文件。记录式文件 流式文件 索引文件 直接(Hash)文件 ~A ~~~3 在文件系统中最大的数据单位是()。数据项 记录 文件 数据库 ~C C语言选择题精选 * 1、A 一个C程序的执行是从_____。 A)本程序的main函数开始,到main函数结束√ B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 * 2、C 以下叙述正确的是: A)在C程序中,main函数必须位于程序的最前面× B)C程序的每行中只能写一条语句× C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误× * 3、D 以下叙述不正确的是。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 * 4、C C语言规定:在一个源程序中,main函数的位置。A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 * 5、B 一个C语言程序是由 A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成 * 6、A 在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为 A)char 7、C 若x,i,j和k都是int型变量,则执行下面表达式后x的值为 x=(i=4,j=16,k=32)A)4 B)16 C)32 D)52 * 8、B 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是: A)7 B)8 C)6 D)2 * 9、A 下列四组选项中,均不是C语言关键字的选项是 A)define B)getc C)include D)while IF char scanf go type printf case pow * 10、B 下面四个选项中,均是C语言关键字的选项是 A)auto B)switch C)signed D)if enum typedef union struct include continue scanf type * 11、C 下面四个选项中,均是不合法的用户标识符的选项是。 A)A B)float C)b-a D)一123 P_0 1a0 goto temp do 一A int INT * 12、C C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符 * 13、A 下面四个选项中,均是合法整型常量的选项是: A)160 B)一0xcdf C)一01 D)一0x48a 一0xffff 01a 986, 012 2e5 011 0xe 0668 0x * 14、D 下面四个选项中,均是不合法的整型常量的选项是: A)一一0f1 B)一0Xcdf C)一018 D)一0x48eg 一0xffff 017 999 一068 0011 12,456 5e2 03f * 15、B 下面四个选项中,均是不合法的浮点数的选项是 A)160.B)123 C)一.18 D)一e3 0.12 2e4.2 123e4.234 e3.e5 0.0 1e3 * 16、B 下面四个选项中,均是合法浮点数的选项是 A)+le+1 B)-.60 C)123e D)一e3 5e一9.4 12e-4 1.2e-.4.8e4 03e2 一8e5 +2e一1 5.e一0 * 17、A 下面四个选项中,均是合法转义字符的选项是 A)''' B)'' C)' 18' D)' ' '' ' 17' 'f' '101' 'n' '“' 'xab' 'xlf' * 18、B 下面四个选项中,均是不合法的转义字符的选项是 A)''' B)'1011' C)' 11' D)'abc' '' '' 'f' '101' 'xf' 'a' '}' 'xlf' * 19、C 下面正确的字符常量是: A)”a“ B)''' C)'W' D)'' *20、D 下面四个选项中,均是不正确的八进制数或十六进制数的选项是。A)016 B)oabc C)010 D)0a12 0x8f 017-0x11 7ff 018 0x8 0x16-123 * 21、C 下面四个选项中,均是正确的八进制数或十六进制数的选项是。A)一10 B)0abc C)0010 D)0al2 0x8f 一017 一0x11-0xl23 一011 0xc 0xf1 一0x8 * 22、D 下面四个选项中、均是正确的数值常量或字符常量的选项是: A)0.0 B)”a“ C)'3' D)十001 0f 3.9E-2.5 011 0xabcd 8.9e lel 0xFFOO 2e2 '&' '''' 0a 50.* 23、A 下面不正确的字符串常量是。 A)'abc' B)”12'12“ C)”0“ D)”“ * 24、C 若有代数式3ae/bc,则不正确的C语言表达式是: A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3 * 25、A 已知各变量的类型说明如下: int k,a,b;unsigned long w= 5;double x=1.42;则以下不符合C语言语法的表达式是: A)x%(一3)B)w+=-2 C)k=(a=2,b=3,a十b)D)a十= a一=(b=4)*(a=3)* 26、A 已知各变量的类型说明如下: int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是: A)a十=a一=(b= 4)*(a=3)B)a=a*3=2 C)x%(一3)D)y=f1oat(i)* 27、D 以下不正确的叙述是 A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量 C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。* 28、D 以下正确的叙述是: A)在C程序中,每行中只能写一条语句 B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数//存进去后就变成float型了 C)在C程序中,无论是整数还是实数,都能被准确无误地表示 D)在C程序中,%是只能用于整数运算的运算符 * 29、B 以下符合C语言语法的赋值表达式是 A)d=9+e+f=d+9 B)d=9+e,f=d+9 C)d=9十e,e++,d十9 D)d=9十e++=d十7 *30、A 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为 A)D B)68 C)不确定的值 D)C * 31、D 在C语言中,要求运算数必须是整型的运算符是。A)/ B)++ c)!= D)% * 32、B 7 8 8 若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum的值为 A)7 B 8 C)9 D)10 * 33、D 在C语言中,int、char和short种类型数据在内存中所占用的字节数 A)由用户自己定义 B)均为2个字节 C)是任意的 D)由所用机器的机器字长决定 * 34、A 若有说明语句:char c='72'则变量c A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定 * 35、A 7 7.2 1 0 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是 A)2·500000 B)2.7500OO C)3.500000 D)0.000000。* 36、B sizeof(float)是: A)一个双精度型表达式 B)一个整型表达式 C)一种函数调用 D)一个不合法的表达式 * 37、C 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为 A)int B)float C)double D)不确定 * 38、A 下面四个选项中,均是非法常量的选项是。 A)'as' B)'' c)-0xl8 D)0xabc-0fff ' 1' 01177 ' ' ' xa' 12, 56 0xf”a“ * 39、D 在C语言中, char型数据在内存中的存储形式是: A)补码 B)反码 C)原码 D)ASCII码 *40、B 1.256998 设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是一一一。A)n=(n*100+0.5)/100.0 B)m=n*100+0.5 ,n= m/100.0 C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0 * 41、C 4 8 表达式18/4*sqrt(4.0)/8值的数据类型为:// sqrt函数返回值为double型 A)int B)float C)double D)不确定 * 42、C 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为: A)0~255 B)0~32767 C)0~65535 D)0~2147483647 * 43、D 设有说明: char w;int x;f1oat y;double z;则表达式w* x+z一y值的数据类型为: A)float B)char C)int D)double * 44、D 若有以下定义,则能使值为3的表达式是: int k= 7,x =12;A)x%=(k%= 5)B)x%=(k一k%5)C)x%=k-k%5 D)(x%=k)一(k%=5)* 45、C 设以下变量均为int类型,则值不等于7的表达式是 A)(x= y= 6, x+y,x+1)B)(x= y= 6,x+y,y+1)C)(x= 6,x+1,y= 6,x+y)D)(y=6,y+l,x = y,x+1)* 46、D putchar函数可以向终端输出一个: A)整型变量表达式值 B)实型变量值 C)字符串 D)字符或字符型变量值 * 47、B printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 * 48、C printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式。A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 * 49、D 已有定义 int a=-2;和输出语句:printf(”%8lx“,a);以下正确的叙述是: A)整型变量的输出格式符只有%d一种 B)%x 是格式符的一种,它可以适用于任何一种类型的数据 C)%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的 D)%8lx 不是错误的格式符,其中数字8规定了输出字段的宽度 *50、D 若x ,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是: A)scanf(” %d%lx,%le“,&x,&y,&z);B)scanf(”%2d * %d%lf“&x,&y,&z);C)scanf(”%x %* d%o“,&x,&y);D)scanf(”%x%o%6.2f“,&x,&y,&z);* 51、A 已有如下定义和输入语句 ,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是 int a1,a2;char c1,c2;scanf(”%d%c%d%c“,&a1,&c1,&a2,&c2);A)10A 20B< CR> B)10 A 20 B 52、B 已有定义int x;f1oat y;且执行scanf(”%3d%f“,&x,&y);语句,若从第一列开始输入数据12345 678(回车),则x 的值为 A)12345 B)123 C)45 D)345 * 53、B 已有定义int x;f1oat y;且执行scanf(”%3d%f“,&x,&y);语句,若从第一列开始输入数据12345 678(回车),则y 的值为: A)无定值 B)45.0000 C)678.000000 D)123.00000 * 54、D 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是: int a1,a2;char c1,c2;scanf(”%d%d“,&a1,&a2);scanf(”%c%c“,&c1,&c2);A)1020AB 55、D 已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为 main(){int a;float f;printf(”nInput number:“);输入语句 printf(”nf=%f,a= %dn ,f,a);} Input number: 4.5 2 56、B 根据定义和数据的输入方式,输入语句的正确形式为: 已有定义: float fl,f2;数据的输入方式:4.52 3.5 A)scanf(“%f,%f”,&f1,&f2);B)scanf(“%f%f”,&f1,&f2);C)scanf(“%3.2f%2.1f”,&f1,&f);D)scanf(“%3.2f%2.1f”,&f1,&f2);* 57、D 阅读以下程序,当输入数据的形式为25,13,10 58、B 阅读 下程序,若运行结果为如下形式 ,输入输出语句的正确内容是: main(){int x;float y;printf(”enter x,y :“)输入语句 输出语句 } 输入形式 enter x,y: 2 3.4 输出形式 x+y=5.40 A)scanf(”%d,%f“,&x,&y);printf(”nx+y= %4.2f“,x+y);B)scanf(”%d%f“,&x,&y);printf(”nx+y=%4.2f“,x+y);C)scanf(”%d%f“,&x,&y);printf(”nx+y=%6.lf“,x+y);D)scanf(”%d%3.1f“,&x,&y);printf(”nx十y=%4.2f“,x+y);* 59、D 以下说法正确的是: A)输入项可以为一实型常量,如scanf(”%f“,3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf(”a=%d,b=%d“);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数, 如scanf(”%4.2f“,&f);D)当输入数据时,必须指明变量的地址,如scanf(”%f“,&f);*60、A 根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为: main(){char ch1 ,ch2 ,ch3;输入语句 printf(”%c%c%c“,ch1,ch2,ch3);} 输入形式: A B C 输出形式: A B A)scanf(”%c%c%c“,&ch1,&ch2,&ch3);B)scanf(”%c,%c,%c“, &ch1,&ch2, &ch3);C)scanf(”%c %c %c“,&ch1,&ch2,&ch3);D)scanf(”%c%c“,&ch1,&ch2,&ch3);*61、D 有输入语句: scanf(”a= %d,b= %d,c=%d“,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是 A)132(回车)B)1,3,2(回车)C)a=1b=3c=2(回车)D)a=1,b =3,c =2(回车)*62、A 以下能正确地定义整型变量a,b和c 并为其赋初值5的语句是 A)int a=b= c= 5;B)int a,b, c= 5;C)a= 5,b=5,c=5;D)a= b= c=5;*63、A 已知ch是字符型变量,下面不正确的赋值语句是 A)ch='a+b';B)ch=' ';C)ch='7'+'9';D)ch=5+9;*64、B 已知ch是字符型变量,下面正确的赋值语句是 A)ch= '123';B)ch= 'xff';C)ch= ' 8';D)ch=”“;*65、B 若有以下定义,则正确的赋值语句是: int a,b;float x;A)a=1,b=2, B)b++;C)a= b= 5 D)b= int(x);*66、B 设x、y均为f1oat型变量,则以下不合法的赋值语句是 A)++x;B)y=(x%2)/10;C)x*=y+8;D)x=y=0;*67、A x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)一5;后,x、y 和之的值是: A)x=10 B)x=10 C)x=10 D)x=10 y=15 y=10 y=10 y=5 z=10 z=10 z=15 z=10 *68、D 逻辑运算符两侧运算对象的数据类型一一一。A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 *69、C 下关于运算符优先顺序的描述中正确的是一一一。 A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B)逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符 C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 *70、B 下列运算符中优先级最高的是一一一。A)< B)十 C)&& D)!= *71、C 能正确表示”当x 的取值在[1,10]和[200,210]范围内为真,否则为假“的表达式是一一一。A)(x>=1)&&(x<=10)&&(x> = 200)&&(x<=210)B)(x>=1)||(x<=10)||(x>=200)||(x<=210)C)(x>=1)&&(x<=10)||(x>= 200)&&(x<=210)D)(x > =1)||(x< =10)&&(x> = 200)||(x<=210)*72、C 表示图中坐标轴上阴影部分的正确表达式是: /////||//////| /////||//////|-----------------------------> X a b c A)(X<=A)&&(X>=B)&&(X<=C)B)(x< =a)||(b<=x<=c)C)(x<=a)||(x> =b)&&(x<=c)D)(x < =a)&&(b< = x < = c)*73、C 判断char型变量ch是否为大写字母的正确表达式是一一一。A)' A' <=ch<='z' B)(ch> = 'A')&(ch<=' z')C)(ch>=' A')&&(ch<='z')D)(' A' < = ch)AND('z'> = ch)*74、D 设x,y 和z是int型变量,且x = 3,y= 4,z= 5,则下面表达式中值为0的是 A)'y'&&'y' B)x < =y C)x||y+z&&y-z D)!(x第三篇:C语言选择题
第四篇:C语言选择题
第五篇:C语言选择题