第一篇:C语言选择题
## ~~~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”); 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 说明不合法 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 #include #i nclude 110、C 以下程序段 x=-1;do {x=x*x;} while(!x);A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 *111、C 以下描述中正确的是: A)由于do一while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B)do一while循环由do开始,用while结束,在while(表达式)后面不能写分号 C)在do一while循环体中,一定要有能使while后表达式值变为零(”假“)的操作 D)do一while循环中,根据情况可以省略while *112、B 若有如下语句 int x=3;do { printf(” %dn“,x-=2);} while(!(--x));则上面程序段 A)输出的是 1 B)输出的是1和-2 C)输出的是3和0 D)是死循环 *113 下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。 #i nclude #i nclude D)for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来 *120、B 对for(表达式1;;表达式3)可理解为: A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)*121、B 若i为整型变量,则以下循环执行次数是: for(i=2;i==0;)printf(”%d“,i--);A)无限次 B)0次 C)1 次 D)2次 *122、C 以下for循环的执行次数是: for(x=0,y一0;(y=123)&&(x<4);x++);A)是无限循环 B)循环次数不定 C)执行4次 D)执行3次 *123、A 以下不是无限循环的语句为: A)for(y=0,x=1;x > ++y;x =i++)i=x;B)for(;;x++=i);C)while(1){x ++;} D)for(i=10;;i--)sum+=i;*124、C 下面程序段的运行结果是: for(y= 1;y<10;)y=((x=3* y,x+1),x-1);printf(”x=%d,y=%d“,x,y);A)x=27,y=27 B)x=12,y=13 C)x=15,y=14 D)x=y=27 *125、D 下面程序段的运行结果是 for(x=3;x<6;x++)printf((x %2)?(”**%d“):(” ##%dn“),x);A)**3 B)##3 C)##3 D)**3##4 ##4 **4 **4##5 **5 **5 ##5 *126、C 下列程序段不是死循环的是 A)int i=100;C)int k=0;whiLe(1)do{++k;} while(k> =0);{i=i%100+1;if(i>100)break;D} int s=36;} while(s);--s B)for(;;);*127、C 执行语句for(i=1;i++<4;);后变量i的值是 A)3 B)4 C)5 D)不定 *128、D 下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空。#i nclude while(【1】){k++;m=m/5;} 【1】A)m%5==0 B)m=m%5==0 C)m%5==0 D)m%5!=0 *133、D 下面程序的运行结果是: #i nclude A)continue语句的作用是结束整个循环的执行 B)只能在循环体内和switch语句体内使用break语句 C)在循环体内使用break语句或continue语句的作用相同 D)从多层循环嵌套中退出时, 只能使用goto语句 *135、D 下面程序段: for(t=1;t<=100;t++){scanf(”%d“,&x);if(x<0)continue;printf(”%3d“,t);} A)当x<0时整个循环结束 B)x>=0时什么也不输出 C)printf函数永远也不执行 D)最多允许输出100个非负整数 *136、C 下面程序段: x=3;do {y=x--;if(!y){ printf(”x“);continue;} printf(”#“);} while(1<=x<=2);A)将输出## B)将输出##* C)是死循环 D)含有不合法的控制表达式 *137、C 以下描述正确的是 A)goto语句只能用于退出多层循环 B)switch语句中不能出现continue语句 C)只能用continue语句来终止本次循环 D)在循环中break语句不能独立出现 *138、C 与下面程序段等价的是: for(n=100;n<= 200;n++){if(n%3==0)continue;printf(”%4d“,n);} A)for(n=100;(n%3)&& n<=200;n++)printf(”%4d“,n);B)for(n=100;(n%3)|| n<=200;n++)printf(”%4d“,n);C)for(n=100;n<=200;n++)if(n%3!=0)printf(”%4d“,n)D)for(n=100;n<=200;n++){if(n%3)printf(”%4d“,n);else continue;break;} *139、B 下面程序的运行结果是: #i nclude C)整型常量或整型表达式 D)任何类型的表达式 *145、D 以下对一维整型数组a的正确说明是__。 A)int a(10);B)int n= 10,a[n];c)int n;D)#define SIZE 10;scanf(”%“,&J1);int a[SIZE];int a[n];*146、D 若有说明:int a[10];则对a数组元素的正确引用是__。 A)a[10] B)a[3.5] C)a[5] D)a[10-10] *147、A 在C语言中,一维数组的定义方式为:,类型说说明符 数组名__。A)[常量表达式] B)[整形表达式] c)[ 整型常量]或[整型表达式] D)[整型常量] *148、C 以下能对一维数组a进行正确初始化的语句是__。A)int a[10]=(0,0,0,0,0)B)int a[10]={} C)int a[]={0};D)int a[10]={10*1};*149、C 以下对二维数组a的正确说明是__。 A)int a[3][];B)floatf a(3,4);C)double a[1][4];D)float a(3)(4);*150、C 若有说明:int a[3][4];则对a数组元素的正确引用是__。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1);*151、D 若有说明:int a[3][4];则对a数组元素的非法引用是__。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] *152、B 以下能对二维数组a进行正确初始化的语句是__。A)int a[2][]={{1,0,1},{5,2,3}};B)int a[][3]={{1,2,3},{4,5,6}};C] int a [2][4]={{1,2,3},{4,5},{6}};D] int a[][3={{1,0,1},{},{1,1}};*153、C 以下不能对二维数组a进行正确初始化的语句是__。A)int a[2][3]={0};B)int a[][3]={{1,2,3},{4,5,6}};C] int a[2][4]={{1,2,3},{4,5}{6}};D] int a[][3]={{1,0,1},{},{1,1}};*154、D 若有说明: int a[3]「4」={0};则下面正确的叙述是 A」只有元素a[0][0]可得到初值0 B」此说明语句不正确:。 C」数组a中各元素都可得到初值,但其值不一定为0。D」数组a中每个元素均可得到初值0 *155、D 若有说明:int a[]「4」={0,0};则下面不正确的叙述是__。A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1 C)因为二维数组0中第二维大小的值除以初值个数的商为1,故数组a行 数为1 D)只有元素a[0]「0」和a[0]「1」可得初值0,其余元素均得不到初值0 *156、B 若有说明:int a[3]「4」;则数组a各元素 A」可在程序的运行阶段得到初值0 B」可在程序的编译阶段得到初值0 C」不能得到确定的初值 D」可在程序的编译或运行阶段得初值0 *157、C 以下各组选项中,均能正确定义二维实型数组a的选项是 A)float a[3][4];B)float a(3,4);float a[][4];float a[3][4];float a[3][]={{1},{0}};float a[][]={{0},{0}};C)float a[3][4];D)float a[3][4];static float a[][4]={{0},{0}};float a[3][];auto float a[][4]={{0},{0},{0}};float a[][4] *158、A 下面程序(每行程序前面的数字表示行号)1 main()2 { 3 int a[3]={3*0};4 int i;5 for(i=0;i<3;i++)scanf(”%d“,&a[i]);6 for(i=1;i++)a[0]=a[0]+a[i] 7 printf(”%dn“,a[0]);A}没有错误 B)第3行有错误 C)第5行有错误 D)第7行没有错误 *159、C 下面程序一一一(每行程序前面的数字表示行号)。1 main()2 { 3 float a[10]={0.0};4 int i 5 for(i=0;i<3;i++)scanf(”%d“,&a[1]);6 for(i=0;i<10;i++)a[0]=a[0]+a[i];7 printf(”%dn“,a[0]);8 } A)没有错误 B)第3行有错误 C)第5行有错误 D)第7行有错误 *160、D 下面程序有错的行是 1 main()2 { 3 int a[3]={1};4 int i;5 scanf(”%d“,&a);6 for(i=1;i<3;i++)a[0]=a[0]+a[i];7 printf(”a[0]=%dn“,a[0]);8 } A)3 B)6 C)7 D)5 *161、D 下面程序(每行程序前面的数字表示行号)1 main()2 { 3 int a[3]={0};4 int i;5 for(i=0;i<3;i++)scanf(”%d",&a[i]); ### ~~~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 1.结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句.2.对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好.⒊数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。 4.继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。5.面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性 6.对象间的通信靠消息传递:消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。7.结构化程序设计中,应尽量避免使用GOTO语句,但不是禁止使用 8.在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。 9.可行性分析阶段产生可行性分析报告。概要设计说明书是总体设计阶段产生的文档。集成测试计划是在概要设计阶段编写的文档。需求规格说明书是后续工作如设计、编码等需要的重要参考文档。 10.在需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD,判定树与判定表 11.编译软件、操作系统、汇编程序都属于系统软件。软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。教务管理系统才是应用软件。12.软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误 13.对被调试的程序进行“错误定位”是程序调试的必要步骤 14.降低耦合性提高内聚性有利于提高模块的独立性 15.软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。主要活动阶段是:可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护 16.程序调试的任务是诊断和改正程序中的错误。 17.数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。 18.软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。 19.黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明 20.系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到 21.黑盒测试方法主要有等价类划分法、边界值分析法、错误推测法、因果图等,主要用于软件确认测试 22.白盒测试的主要方法有逻辑覆盖、基本路径测试等 23.结构化分析就是使用数据流图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为机构化规格说明的目标文档 24.软件测试的过程一般按照四个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试 25.软件需求分析阶段的主要工作为需求获取、需求分析、编写需求规格说明书和需求评审 26.E-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。 27.自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉 28.数据库应用系统中的核心问题是数据库的设计。 29.从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。 30.在E-R图中实体集用矩形,属性用椭圆,联系用菱形。 31.数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。32.数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。33.C语言中的非执行语句不会被编译,不会生成二进制的机器指令 34.一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法。 35.程序的执行总是从main函数开始,在main函数中结束,其他函数通过main函数调用执行 以下选项中能表示合法常量的是()。答案:A A)“ 07” B)1.5E2.0 C)’’ D)1,200 E前E后有数字,E后数字为整数,B)错误;为转义字符,后面跟特定字符,用来表示ASCII字符,C)错误;一个整数之间不能有逗号,D)错误。 36.计算机能直接执行的程序是二进制的可执行程序,其他的不能直接执行 37.算法有零个或多个输入,有一个或多个输出 38.C程序在运行过程中所有计算都以二进制方式进行 39.C语言中的注释不可以夹在变量名或关键字的中间 40.在C语言中函数不能嵌套定义,即在C程序的函数中不能定义另一个函数 41.算法是为了解决一个一个问题而采取的方法和步骤,和运行时间无关 42.E-R图是数据库中数据模型之一 43.C语言程序可以由几个.c文件组成,每个.c文件都可以单独编译,一个程序只有一个main函数,main函数位置可以任意 44.取模运算符“%”为二元运算符,具有左结合性,参与运算的量应均为整型 45.整型数据int占4个字节,double型数据占8个字节。有以下程序 #include B)2,3,2 C)2,3,3 D)2,2,1 46.在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制 以下定义语句中正确的是()。答案:A A)char A=65+1,b=’b’ B)int a=b=0; 定义变量时不能连等 C)float a=1,*b=&a,*c=&b; b是指针,c定义为指向指针的指针才可以接受&b D)double a=0.0;b=1.1; b=1.1前没有类型名 47.常量是在程序运行时,其值不能被改变的量,跟经常使用没关系 以下关于C语言数据类型使用的叙述中错误的是()。A A)若只处理“真”和“假”两种逻辑值,应使用逻辑类型 B)若要保存带有多位小数的数据,可使用双精度类型 C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型 D)整数类型表示的自然数是准确无误差的 C语言不存在逻辑类型,所以A)错误。单精度float类型可提供6位有效数字,双精度double类型可提供16位有效数字,所以要保存带有多位小数的数据,要使用双精度类型 设有定义: int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是()。答案:A A)k++ B)k+=1 C)++k k++表达式值为k的值,其余为k+1的值。 D)k+1 48.符号常量习惯上用大写,但不是必须。符号常量是指在程序中通过宏定义用一个符号名来代表一个常量 若有以下程序 #include A)-1 2 B)1 2 C)-1-2 D)1-2 若有以下程序 #include A)第4行 两个连续逗号,语法上错误 B)第5行 C)第6行 D)第7行 49.变量一旦定义,变量所占的存储单元地址不可以随时改变 若有以下程序 #include 先执行a+=++b后,a值为1,b值为1,再执行b+=4后,b为5,最后把b赋值给c,c值为5 以下选项中不属于C语言标识符的是()。A A)常量 常量中数值常量等不是标识符 B)用户标识符 C)关键字 D)预定义标识符 以下选项中不属于C语言程序运算符的是()。答案:A A)<> B)sizeof C)() D)&& 有以下程序 #include A)6 C语言中标识符区分大小写,所以pAd和pad是不同的变量,pad值只自增一次,值为6 有以下定义语句,编译时会出现编译错误的是()。答案:A A)char a=“aa”;不能将一个字符串赋值给一个字符变量 B)char a=’n’; C)char a=’a’; D)char a=’x2d’; .以下选项中,值为1的表达式是()。答案:A A)1’0’ 以下叙述中正确的是()。A A)由&&构成的逻辑表达式与由||构成的逻辑表达式都有“短路”现象 B)C语言的关系表达式:0 C)逻辑“非”(即运算符!)的运算级别是最低的 D)逻辑“或”(即运算符||)的运算级别比算术运算要高 50.字符常量实际存放的就是整数,可以进行任何整数运算 51.后跟八进制数据,不能出现数字8 52.%d表示要输入的是整数;%c则表示输入的是字符,且各控制符之间无任何分隔字符 设有定义: int a;float b;执行 scanf(“%2d%f”, &a, &b);语句时,若从键盘输入 876 543.0<回车> 则a和b的值分别是()。A A)87和6.0 B)876和543.0 C)87和543.0 D)76和543..有如下程序段: int x=12;double y=3.141593;printf(“%d%8.6f”, x, y);其输出结果是()。答案:A A)123.141593 B)12 3.141593 C)12, 3.141593 D)123.1415930 x和y之间没有间隔符,%8.6f表示占据8个字符,小数点后有6位 以下叙述中正确的是()。A A)赋值语句是一种执行语句,必须放在函数的可执行部分 B)scanf和printf是C语言提供的输入和输出语句 C)由printf输出的数据都隐含左对齐 D)由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的 scanf和printf是输入输出函数,不是语句.printf输出如果有宽度控制,默认是右对齐.数据的实际精度是由数据存储类型决定的,double精度高于float 以下叙述中正确的是()。答案:A A)当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键)前,可以任意修改 B)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的 C)空语句就是指程序中的空行 D)复合语句在语法上包含多条语句,其中不能定义局部变量 花括号对{}也可以能用来表示程序中需要整体处理的一组语句的符合语句,空语句表示是只有一个分号的语句,复合语句内可以定义局部变量 有以下程序 #include A)12 3 B)12 C)1234 D)12 34 getchar()函数的值就是从输入设备得到的字符,在输入时,空格、回车符将作为字符读入,请注意,getchar()只能接收一个字符。所以变量a被赋予1,变量b被赋予2,变量c被赋予回车符,变量d被赋予3 有以下程序 #include B)12□a□34□b C)12,a,34,b D)12□a34□b 在输入多个数据时,如果格式控制串中没有非格式字符,则认为所有输入的字符均为有效字符。 有以下程序 #include A)AbCdEf B)ABCDEF C)aBcDeF D)abcdef 有以下程序 #include B)1256 C)1278 D)1267 scanf()是格式化输入函数;getchar()函数从键盘缓冲区读入下一个字符;putchar()输出一个字符;printf()函数是格式化输出函数。在题目中,程序执行到scanf()函数时,会暂停等待用户输入4个字符,按题意输入123<回车>后,字符1~3被分别赋值到c1~c3中,而c4会得到一个换行符' n'。然后执行第1个getchar()函数,由于前面的scanf()函数读完了缓冲区中的所有字符,所以此时程序会又暂停等待用户输入,按题意输入45678<回车>后,缓冲区第一个字符4赋值到c5,第二个字符5输入到c6,所以本题应该选择A)。 有以下程序段 #include A)566.0 B)55566.0 C)7777.0 D)566777.0 按用户指定的格式从键盘上把数据输入到指定的变量之中,其中的格式命令可以说明最大域宽。在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。因此j的值为55,y的值为566.0,字符数组name的值为7777abc 以下叙述中错误的是()。A A)getchar函数用于从磁盘文件读入字符 B)gets函数用于从终端读入字符串 C)fputs函数用于把字符串输出到文件 D)fwrite函数用于以二进制形式输出数据到文件 题中“fopen(fn,”w“)”的作用是打开fn所指向的文件,使用文件方式为“写入”;“fputs(str,fp)”的作用是将字符str的值输出到fp所指向的文件中去。在程序中,两次使用“写入”的方式打开同一个文件,在第二次打开时,文件指针指向文件头,所以此次写入的数据覆盖了文件原有的数据,故本题中t1.dat的内容为end。 有以下程序 #include B)2 C)1 D)3 若有定义: float x=1.5;int a=1,b=3,c=2;则正确的switch语句是()。A A)switch(a+b){ case 1: printf(“*n”);case 2+1: printf(“**n”);} B)switch((int)x);{ case 1: printf(“*n”);case 2: printf(“**n”);} C)switch(x){ case 1.0: printf(“*n”);case 2.0: printf(“**n”);} D)switch(a+b){ case 1: printf(“*n”);case c: printf(“**n”);} 若变量已正确定义,在if(W)printf(“%dn” ,k);中,以下不可替代W的是()。答案:A A)a<>b+c 是非法的表达式,C语言中没有“<>”运算符 B)ch=getchar() C)a==b+c D)a++ 设有定义: int a=1,b=2,c=3;以下语句中执行效果与其它三个不同的是()。A A)if(a>b)c=a;a=b;b=c; B)if(a>b){c=a,a=b,b=c;} C)if(a>b)c=a,a=b,b=c; D)if(a>b){c=a;a=b;b=c;} 有以下程序 #include B)不等于10的整数 C)大于3或等于10的整数 D)小于3的整数 下列条件语句中,输出结果与其他语句不同的是()。A A)if(a==0)printf(“%dn”, x);else printf(“%dn”, y); B)if(a==0)printf(“%dn”, y);else printf(“%dn”, x); C)if(a!=0)printf(“%dn”, x);else printf(“%dn”, y); D)if(a)printf(“%dn”, x);else printf(“%dn”, y); 若有以下程序 #include A)2,2,2,4 B)2,1,2,-1 C)5,1,2,-1 D)1,2,3,4 若有以下程序 #include B)2,1,2,-1 C)2,2,2,4 D)1,2,3,4 若有以下程序 #include A)10 B)7 C)6 D)3 以下叙述中正确的是()。A A)关系运算符两边的运算对象可以是C语言中任意合法的表达式 B)在C语言中,逻辑真值和假值分别对应1和0 C)对于浮点变量x和y,表达式:x==y 是非法的,会出编译错误 D)分支结构是根据算术表达式的结果来判断流程走向的 逻辑真值和假值分别对应非零和零。对于浮点变量x和y,表达式“x==y”是合法的;分支结构是根据表达式的真假来判断流程走向的 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是()。A A)(E==0) B)(E>0||E<0) C)(!E==0) D)(E!=0) 以下叙述中正确的是()。A A)break语句只能用在循环体内和switch语句体内 B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环 C)在循环体内使用break语句和continue语句的作用相同 D)break语句只能用于switch语句体中 break和continue语句。break语句可以用于switch或循环体内,作用是跳出switch或循环体。continue语句只能用于循环体内,作用是结束当前循环,进入下次循环 若有以下程序 #include A)0,14,3 B)1,14,3 C)0,18,3 D)0,14,6 有以下程序 #include A)y=-1 B)y=0 C)y=1 D)while构成无限循环 有以下程序 #include B)2 C)4 D)死循环 判断循环条件--k,k值为4,条件为假,执行输出语句,其中k-= 3执行后,k为1,即输出为1,然后判断循环条件--k,值为0,为假,循环结束 有以下程序 #include B)8,11 C)7,11 D)9,18 由以下while构成的循环,循环体执行的次数是 int k=0;while(k=1)k++;()。A A)无限次 B)一次也不执行 C)执行一次 D)有语法错,不能执行 有以下程序 #include B)0 C)15 D)16 sum没有初始化,为随机值,再加上若干值,仍为随机值 有以下程序 #include 53.循环for,while,do-while可以互相嵌套循环嵌套可以超过2层,对缩进也没有要求,for语句的圆括号中的表达式都省略掉,表示死循环。若变量已正确定义 for(x=0,y=0;(y!=99 && x<4);x++)则以上for循环()。答案:D A)执行4次 B)执行3次 C)执行无限次 D)执行次数不定 for循环没有循环语句,不确定x,y变量会怎样赋值,所以执行次数不定。 对于while(!E)s;,若要执行循环体s,则E的取值应为:()。A A)E等于0 B)E不等于0 C)E不等于1 D)E等于1 若有以下程序 #include #include A)k=4 a=12 B)k=5 a=15 C)k=6 a=11 D)k=3 a=14 54.++i和--i 是先增(减)1,在使用。i++和i--是先使用,在增(减)1。例如:main() { int m=12,n=32; printf(“%d %d n”, ++m,n++) printf(“%d %d n”, m++,++n)} 运行结果:13,32 13,34 Main(){ float a=3.14;Int area, R=5; Area=a*R*R;Printf(“area is %dn”,area);} 结果是area=5*5*3.14=78,因为是78.5转化为int型,area是整型 Main(){ Float=2.9; Printf(“%d”, a); } 结果是a=2,因为是printf中起决定作用的。 55.逗号表达式:y=a=4,b=5,a+b;其结果为a+b的值是9 56.逗号表达式:y=(a=4,b=5,a=b); 其结果为y的值是9 57.逗号表达式;y=(a=4,b=5),a+b; 其结果为a=4,y=5,b=5,a+b的值为9 58.逗号表达式:y=a=(4,b=5),a+b: 其结果为y=a=5,a+b的值为10 59.指针类型的null其逻辑值为0,还有0, , 0.0其逻辑表达式为0。60.第二篇:c语言选择题
第三篇:C语言选择题
第四篇:C语言选择题
第五篇:C语言选择题