大连交通大学计算机C语言

本试卷为大连交通大学计算机C语言,题目包括:单项选择题,判断题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。

计算机C语言

一、单项选择题 (共20题,每题2分,共计40分)

(  D  )
1、设a=1,b=2,c=3,d=4,则表达式:"a<b?a:b<b?a:c
A、4
B、3
C、2
D、1
(  B  )
2、若有定义语句int b=2;则表达式(b<<2)/(3||b)的值是________。
A、4
B、8
C、0
D、2
(  C  )
3、运行以下程序后,如果从键盘上输入:65 14<回车>,则输出结果为
main( )
{
int m,n;
printf("enter m,n:");
scanf("%d%d",&m,&n);
while (m!=n)
{
while (m>n) m-=n;
while (n>m) n-=m;
}
printf("m=%d\n",m);
}
A、m=3
B、m=2
C、m=1
D、m=0
(  B  )
4、以下能正确定义一维数组的选项是________。
A、int num[];
B、#define N 100
int num[N];
C、int num[0..100];
D、int N=100;
int num[N];
(  D  )
5、有以下程序
#include <stdio.h>
main()
{
int a=1,b=0;
printf("%d,",b=a+b);
printf("%d",a=2*b);
}
程序运行后的输出结果是________。
A、0,0
B、1,0
C、3,2
D、1,2
(  C  )
6、对于类型相同的两个指针变量之间,不能进行的运算是______。
A、<
B、=
C、+
D、-
(  C  )
7、若有以下说明 : char s1[ ]={"tree"
} ,s2[]={"flower"};, 则以下对数组元素或数组的输出语句中 , 正确的是 _______ .
A、printf("%s%s",s1[5],s2[7]);
B、printf("%c%c",s1,s2);
C、puts(s1);puts(s2);
D、puts(s1,s2);
(  A  )
8、下列描述说明正确的是________。
A、定义结构体时,它的每个成员的数据类型可以不同
B、不同结构体的成员名不能相同
C、结构体定义时,其成员的数据类型不能是结构体本身
D、结构体定义时各成员项之间可用分号也可用逗号隔开
(  A  )
9、下列对字符数组进行初始化的语句中,______ 是正确的。
A、char s 1[]=“abcd”;
B、char s2 [3]=”xyz”;
C、char s 3[] [3]={‘a’,‘x’,‘y’}
D、char s3 [][3]={“xyz”,“mnp”};
(  B  )
10、以下叙述中正确的是________。
A、在函数中必须要有return语句
B、在函数中可以有多个return语句,但只执行其中的一个
C、return语句中必须要有一个表达式
D、函数值并不总是通过return语句传回调用处
(  C  )
11、若有循环:
int x=5,y=20;
do { y-=x; x++; }
while(++x<--y);
则循环体将被执行________。
A、0次
B、1次
C、2次
D、3次
(  C  )
12、列关于计算机中数的表示的叙述中,错误的是________。
A、正整数无论采用原码、反码或补码表示,其编码都相同
B、实数的浮点表示法由指数和尾数(含符号位)两部分组成
C、实数都能用浮点形式精确表示
D、整数也能用浮点数形式表示
(  A  )
13、有以下程序
struct stu
{
char num[10];
float score[3];
}
;
main( )
{
struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;
int i;
float sum=0;
p=s+1;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%.3f\n",sum);
}
程序运行后的输出结果是___________。
A、250.000
B、250
C、270.000
D、270
(  A  )
14、设有循环语句"for(i=1;i>0;i++) i++; ",其循环执行的次数是________。
A、无限
B、0
C、3
D、4
(  B  )
15、能正确表示a≥10或a≤0的关系表达式是________。
A、a>=10 or a<=0
B、a>=10 || a<=0
C、a>=10 | a<=0
D、a>=10 && a<=0
(  C  )
16、以下叙述中正确的是________。
A、语言中的关键字不能作变量名,但可以作为函数名
B、标识符的长度不能任意长,最多只能包含 16 个字符
C、标识符总是由字母、数字和下划线组成,且第一个字符不得为数字
D、用户自定义的标识符必须见名知义,如果随意定义,则会出编译错误
(  C  )
17、若有定义: char str1[10] = "aaaaaaa";
char str2[10] = "bbbbb";
将字符串str2连接到str1,则下列描述中正确的是________。
A、strcat(str1,str2)可以将字符串str2连接到str1中
B、strncat(str1,str2,strlen(str2))可以将字符串str2连接到str1中
C、strncat(str1,str2,2)可以将字符串str2的前两个字符连接到str1中
D、strncat(str1,str2,4)可以将字符串str2的前四个字符连接到str1中
(  C  )
18、以下叙述中不正确的是________。
A、表达式a&=b等价于a=a&b
B、表达式a|=b等价于a=a|b
C、表达式a!=b等价于a=a!b
D、表达式a^=b等价于a=a^b
(  C  )
19、以下叙述中错误的是________。
A、C语句必须以分号结束
B、复合语句在语法上被看作一条语句
C、空语句出现在任何位置都不会影响程序运行
D、赋值表达式末尾加分号就构成赋值语句
(  B  )
20、设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是____
A、b=1.0/a
B、b=(float)(1/a)
C、b=1/(float)a
D、b=1/(a*1.0)

二、判断题 (共10题,每题2分,共计20分)

(   F  )
1、if语句不可以嵌套使用。 
(   T  )
2、用字符串常量给数组赋初值时,如果提供的字符个数大于数组长度,则系统报错。 
(   F  )
3、main()函数也是c语言的关键字() 
(   F  )
4、将浮点型数据转换为整型数据时,小数点后的数会进行四舍五入。() 
(   T  )
5、函数的实参传递到形参有两种方式:值传递和地址传递。 
(   F  )
6、char s[5];s = {"abcd"};正确吗 
(   F  )
7、while循环语句的循环体至少执行一次. 
(   F  )
8、函数调用可以出现在执行语句中,但不能出现在表达式中. 
(   F  )
9、全局变量的作用域是整个源程序文件。 
(   F  )
10、若有说明语句char *p= "it is mine "则 p 变量中存放的是整个字符串 

三、编程题 (共3题,每题0分,共计40分)

1、编写程序:从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数
例如:从键盘上输入2345,则程序运行的结果应当为:n=2345()
2、编写程序:用结构体数组,学生信息由学号、姓名,成绩组成,
数据如下:201513135157 张三 90
1)使用结构体数组,将学生的数据按成绩从高到低排序显示到屏幕上
2)将学生中不及格学生的姓名显示出来
3)写一个函数,获取成绩低于平均分的学生记录并返回低于平均分的学生人数
3、输入5个数,求和并输出。要求编写求和的函数。