发布时间 : 星期六 文章C语言程序设计试题4更新完毕开始阅读
C语言程序设计试题
试卷类别 B
适用专业、年级、班 2014级理科
一、选择(每小题2分,共2×20=40分) 1.下列叙述错误的是( )
A) C程序中的每条语句都用一个分号作为结束符 B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用
D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 2.A) For 以下有 3. -sub Case 4 组用户标识符,其中合法的一组是( B) 4d C) f2_G3 ) D) WORD
DO Size abc IF void A4.)若变量已正确定义并赋值,以下符合 define a:=b+1B)a=b=c+2C)int 18.5=)Ca=a+7=c+b 语言语法的表达式是() A)1.607E-1 以下选项中不正确的实型常量是()5.设x,y和
z 是B)0.7204e int 型变量,且 C)-77.77 x=3,y=4,z=5, 则下面表达式中值为 D)234e-2
0的是(A)'x' &&'y' 6.逻辑运算符两侧运算对象的数据类型( B)x<=y C)x || y+z&&y-z )
D)!((x 是整型数组D)运算符9.已知指针变量*和&都是取变量地址的运算符) p指向变量a,则a和*p 值相同,都是变量a的值 A)(x >= y) && (y >= z) 为表示关系 x >= y >= z, C)(x >= y >= z) 应使用的C语言表达式为( ) 10. for(int x=0,y=0;!x&&y<=5;y++) D)(x >= y) & (y >= z) B)(x >= y) AND (y >= z) A)0 B)5 C)6 D)语句执行循环的次数是( ) 11.#include ) void main(void) { int if (m++ > 5) m = 5; { printf(\ else } { printf(\A)4 B)5 C)6 D)7 12.A)整型变量在C语言中,引用数组元素时,其数组下标的数据类型允许是( B)浮点数 C)整型常量 D)任何类型的表达式 ) ) 13.已有定义:int k = 2; int *p1, *p2;且p1和p2均已指向变量k,下面不能正确执行的赋值语句是( ) B A)k = *p1 + *p2; B)p2 = k; C)p1 = p2; D)k = *p1 * (*p2); 14.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( ) void main(void) { int *p, *q, a, b; p = &a; printf(\ a :\ scanf(\ …….. } A)*p表示的是指针变量p的地址; B)*p表示的是变量a的值,而不是变量a的地址 C)*p表示的是指针变量p的值 D)*p只能用来说明p是一个指针变量 15.fopen()函数的mode取值 r 和 w 时,它们之间的差别是( ) A)r 可向文件输入, w 不可向文件输入 B)r 不可向文件输入, w 可向文件输入 C)r 不可由文件输出, w 可由文件输出 D)文件不存在时, r 建立新文件, w 出错 16.已有定义:char a[]=\以下叙述中正确的是( ) A)数组a和b的长度相同 B)a数组长度小于b数组长度 C)a数组长度大于b数组长度 D)上述说法都不对 17.以下关于while()循环说法正确的是( ) A)while()中的括号里面只能填表达式 B)while(1) {}会造成死循环 C)while()括号里面只有填1才会造成死循环 D)while(nA > 1)当满足条件nA > 1时跳出循环 18.若有语句:CHAR *LINE[5];以下叙述中正确的是( ) A)定义LINE是一个数组,每个数组元素是一个基类型为CHAR的指针变量 B)定义LINE是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义LINE是一个指针数组,语句中的*号称为间址运算符 D)定义LINE是一个指向字符型函数的指针 19.以下函数声明正确的是( ) A) void Test(int nA = 10,int nB); B) void Test(int,int); C) void Test(int nA,int nA); D)以上全错 20.定义一个二维数组nArr[3][4],则对其元素正确引用的是( ) A)nArr[2][4] B)nArr[1,3] C)nArr[1+1][0] D)nArr(0)(4) 二、填空(每小题2分,共2×10=20分) 1.设(k=a=5,b=3,a*b),则表达式的值为( ) 2.按内存排列顺序, 数组char a[2]中的所有元素是a[1]和( ) 3. 求字符串长度的库函数是( ),只写函数名即可 4. 设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为( ) 5. 已知 i=5, 写出语句 a=(i>5)?0:1; 执行后整型变量 a 的值是( ) 6. 若 char w,int x,float y,double z;则表达式w*x+z-y的结果为( )类型. 7. 执行语句char s[3]=\的值是( ) 8. C语言中一个函数由函数首部和( )两部分组成. 9. 将函数funl 的入口地址赋给指针变量p的语句是( ) 10. C语言中,数组名是一个不可变的( )量,不能对它进行加减和赋值运算. 三、判断题(每小题1分,共1×10=10分) 1.预处理命令的前面必须加一个“#”号( ) 2.标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项( ) 3.continue 4.5.在对数组全部元素赋初值时,不可以省略行数,但能省略列数(不是结束本次循环,而是终止整个循环的执行( ) 6函数的实参传递到形参有两种方式值传递和地址传递( ) ) 7.共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员( 8.浮点型常量的指数表示中 在switch ,e 是可以省略的( ) 10.int (*p)[4]9.do-while语句中,每一个的循环的while后的分号可以省略(case常量表达式的值可以相同( ) ) 它表示p是一个指针数组,它包含4个指针变量元素( ) 四、完善程序题(每空3分,共3×6=18分) 1. 下面程序的功能是将一个字符串str的内容颠倒过来,请填空。 char str[]={\ #include\ main() { int i,j,k; for(i=0,j=strlen(str) , j=j-1 ;i 2. 计算s=1+12+123+1234+12345 #define N 5 #include int t=1, 【3】,i; for(i=2;i<=N;i++) { t= s+=t; 【4】 ; } printf(\ } 3.#include 根据输入的整数m(m>=0)值,计算?mi.计算前m个整数的和 i?1unsigned sum(unsigned n) { for(i=1;i<=n;i++) unsigned i, sum=0; )