常熟理工C语言试卷带答案,常熟理工学院 C语言 考试样卷

程序设计基础(C语言)考试卷(本科样卷)

(理论部分)考试时间120分钟,答案请写在答题卡上

一、选择题 (每小题2分,共40分) 1.

A.x=sqrt(2);

B.while(x!=0)x--; C.if(x<0)x=-x; D.return x;

2.执行以下程序时, #include main()

{ int a; float b;

scanf("%3d%f",&a,&b);printf("%d\t%f",ab); }

若要求变量a和b分别从键盘获得输入值45和678.0,则以下四种输入数据中(凵代表”空格”键,↙代表”回车”键),不能达到该要求的输入数据是( )。 A.45凵678↙ B.45↙678↙ C.45,678↙ D.045678↙

3.已知有声明int x=2:,以下表达式中值不等于8 A.x+=2,x*2 B.x+=x*=X C.(x+7)/2*((x+1)%2+1) D.x*7.2/x+1

4.已知有声明”int a=3, b=4, c;”,则执行语句”c=1/2*(a+b);”后,c的值是( )。

A.0 B.3 C.3.5 D.4

5.已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码。若要求将c中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是( )。

A.c=tolower(c) B.c=c+32 C.c=c- A + a D.c= (c + A )%26- a

6.已有声明”char *s1="China", s2[10], *s3="Nanjing"; *s4;”,以下字符串赋值语句在执行时可能出现错误的是( )。

A.strcpy(s3, s1); B.strcpy(s4, s1); C.strcpy(s2, s1); D.strcpy(s2, s3); 7

#include void main() { int x=3;

Do

{ printf("%d\t", x=x-3);

}while(!x);

}

A.输出一个数:0 B.输出一个数:3 C.输出两个数:0和-3 D.无限循环,反复输出数

8.设有声明”int p[10]={1, 2}, i=0;”,以下语句中与”p[i]=p[i+1], i++;”等价的是( )。

A.p[i]=p[i+1]; B.p[++i]=p[i]; C.p[++i]=p[i+1]; D.i++, p[i-1]=p[i];

9.已知有声明”int m[]={5,4,3,2,1},i=0;”,下列对m数组元素的引用中,错误的是( )。 A.m[++i] B.m[5]

C.m[2*2]=0 D.m[m[4]] 10.若有函数fun的定义为 void fun(…)

{static int a=1; … }

A.在每次调用fun函数时,变量a的值是上次调用结束时a的值 B.在fun函数之外,可以用变量名a直接引用a的值 C.在其他函数中,可以出现声明double a=2.5; D.fun函数的形式参数不能取名为a

11.若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是( )。

A.实参和其对应的形参占用同一存储单元 B.形参不占用存储单元

C.同名的实参和形参占用同一存储单元 D.形参和实参占用不同的存储单元

12.已有声明”int a[5];”,以下表达式中不能正确取得a[1]指针的是( )。

A.&a[1] B.++a C.&a[0]+1 D.a+l 13.若有如下声明和语句: int t[3][3], *pt[3], k;

for(k=0; k<3;k++) pt[k]=&t[k][0];

则表达式*(*(pt+1)+2) A.t[2][0] B.&t[2][0] C.t[1][2] D.&t[1][2] 14.若有如下的类型定义和变量声明,则在给出的选项中值不为7

struct ss { int a;

struct ss *b;

}x[3]={{5, &x[1]}, {7, &x[2]}, {9, 0}}, *ptr=&x[0]; A.ptr->a B.(++ptr)->a C.x[1].A D.x[0].b->a 15

A.main函数必须出现在其他函数之前 B.main函数中至少必须有一条语句

C.C程序总是从main函数的第一条语句开始执行

D.C程序总是在执行完main函数的最后一条语句后结束 16.已有定义“int a[2][3]={0}, *p=a[0];”,下面表达式中有语法错误的是 。 A.a[0]=1 B.p[0]=1 C.*p=1 D.a[0][0]=1 17.若有如下声明和语句:

int a[3][3], *p[3], k;

for(k=0; k<3;k++) p[k]=&a[k][0];

则表达式*(*(p+1)+2)所引用的是 。 A.a[2][0] B.&a[2][0] C.a[1][2] D.&a[1][2]

18.设有声明语句“int b[3][3]={1,2,3,4,5,6,7,8,9};”,下面语句中不能输出数组元素b[1][2]的值6的是 _。

A.printf("%d ",*(*(b+1)+2)) B.printf("%d ",*(&b[2][0]-1)); C.printf("%d ",*(b[1]+2)); D.printf("%d ",*(b+1)[2]);

19.下面函数中,可以把整型数据以二进制形式写入文件中的函数是________。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值