C语言程序设计试题4

发布时间 : 星期六 文章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 void main() {

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; )

联系合同范文客服:xxxxx#qq.com(#替换为@)