大连理工大学C语言期中测试模拟题4
一、选择题
1.下列关于单目运算符++、--的叙述中正确的是( )。
A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量
B、它们的运算对象可以是任何变量和常量
C、它们的运算对象可以是char型变量和int型变量,但不能是float型变量
D、它们的运算对象可以是char型变量、int型变量和float型变量
2.执行下列程序后,其输出结果是()。
main()
{int a=9;
a+=a-=a+a;
printf("%d\n",a);
}
A、18
B、-9
C、9
D、-18
3.打印语句printf("sTUDEND\bT\rS");在屏幕上正确的输出形式是( ).
A、sTUDENDS
B、TUDENTS
C、STUDENT
D、sTUDENTS
4.已知键盘输入a=4,b=3,下面程序输出的结果是( ).
main()
{ int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);
}
A、9
B、13
C、16
D、15
5.若给定条件表达式(m)?(a++):(a--),则其中表达式m()。
A、和(m==0)等价
B、和(m!=0)等价
C、和(m==1)等价
D、和(m!=1)等价
6.执行语句 for(i=1;i++<4;); 后变量 i 的值是()。
A、3
B、5
C、4
D、不定
7.以下描述中正确的是()。
A、由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B、do-while 循环中,根据情况可以省略 while
C、在 do-while 循环体中,必须有能使循环退出的操作。
D、do-while 循环由do开始,用while结束,在 while(表达式)后面不能写分号
8. int a[10];合法的数组元素的最小下标值为()。
A、10
B、9
C、1
D、0
9.以下正确的函数定义是( ).
A、double fun(int x, int y) { z=x+y; return z;}
B、fun(x, y) { int x, y; double z; z=x/y; return z;}
C、float f(int x, int y) {float z; z=x/y; return z;}
D、fun(int x, y) { int z; return z; }
10. char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是()。
A、strcat(a2,a1);
B、strcat(a1,a2);
C、strcpy(a1,a2);
D、strcpy(a2,a1);
11.若有 char s1[]="abc",s2[20],*t=s2;gets(t); 则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是()。
A、if(strcmp(s2,s1)>0)puts(s2);
B、if(strcmp(s2,t)>0)puts(s2);
C、if(strcmp(s1,t)>0)puts(s2);
D、if(strcmp(s1,s1)>0)puts(s2);
12.已知有宏定义#define SQR(a) 2*a*a,则SQR(3+4)的值为( ).
A、22
B、32
C、98
D、18
13.若有说明:int *p,m=5,n;以下正确的程序段是()。
A、scanf("%d",&n);*p=n;
B、p=&nscanf("%d",*p)
C、p=&nscanf("%d",&p);
D、p=&nscanf("%d",p);
14. char h,*s=&h可将字符H通过指针存入变量h中的语句是()。
A、*s='H';
B、s='H'
C、*s=H;
D、s=H;
15.定义结构体的关键字是( )。
A、struct
B、typedef
C、enum
D、union
DDCCB BCDCA CADAA
二、判断题
1.若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"。
2. a=(b=4)+(c=6) 是一个合法的赋值表达式。
3. C语言程序中输入一个中间带有空格的字符串时,可以用scanf函数.
4.格式字符%e以指数形式输出实数数字部分小数位数7位.
5.设g=1,h=2,k=3,则逻辑表达式k+g||!h&&k-h的值为0
6.求解表达式max=(a>b)?a:b的步骤是,先求解条件表达式(a>b),再根据它的值将a或b赋给max.
c语言中struct
7.语句if(a>b) printf("%d",a); else printf("%d",b);可以用条件表达式a>b?a:b取代.
8. break语句能够终止当前进行的多层循环.
9. for循环的三个表达式都可以省略.
10. for语句的循环体至少执行一次.
11.字符串"Da lian"在内存中的存储长度是7.
12.定义 int x[5],n;则x=x+n;或x++;都是正确的.
13.若有定义 int a[10];则 for (i=0;i<=10;i++) a[i]=i;编译时无语法错误.
14.数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.
15.当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在静态区.
16.两个字符串中的字符个数相同时才能进行字符串大小的比较
17.如果被包含文件中有全局静态变量,它们在用#include命令的源文件中有效.
18.假设有int a[10], *p;则p=&a[0]与p=a等价
19.共用体变量中起作用的成员是最后一次存放的成员.
20.下面的定义和语句是合法的:
file *fp;fp=fopen("a.txt","r");
对对错错错对错错对错错错对错错错对对对错
三、填空题
1.若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是 _____ .

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。