中国音乐学院往年计算机C语言期末

本试卷为中国音乐学院往年计算机C语言期末,题目包括:单项选择题,判断题,编程题。

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

计算机C语言期末

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

(  C  )
1、在do-while循环中,循环由do开始,用while结束,必须注意的是,在while表达式后面的 不能丢,它表示do-while循环的结束。
A、0
B、1
C、;
D、,
(  D  )
2、下面合法的语句是________。
A、int a=8,b;
b=++a++;
printf("%d,%d",a,b++);
B、int a;
printf("\\"%d\\"",scanf("%d",&a));
C、char a;
scanf("%c",&a);
char b=scanf("b=%c",&b);
D、char c=getchar( );
putchar((int)c);
(  C  )
3、运行以下程序后,如果从键盘上输入china#<回车>, 则输出结果为
#include <stdio.h>
main( )
{
int v1=0,v2=0;
char ch;
while ((ch=getchar( ))!='#') switch(ch)
{
case 'a': case 'h': default: v1++;
case 'o': v2++;
}
printf("%d,%d\n",v1,v2);
}
A、2,0
B、5,0
C、5,5
D、2,5
(  A  )
4、设有如下程序段 char s[20]= "bejing",*p; p=s; 则执行p=s; 语句后,以下叙述正确的是________。
A、可以用*p表示s[0]
B、s数组中元素的个数和p所指字符串长度相等
C、s和p都是指针变量
D、数组s中的内容和指针变量p中的内容相等
(  B  )
5、以下运算符中优先级最高的运算符为________。
A、&&
B、!
C、!=
D、||
(  C  )
6、若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10 },*p=a; 则值为6的表达式是_______。
A、*p+6
B、*(p+6)
C、*p+=5
D、p+5
(  A  )
7、下列语句执行后的结果是______。 y=5; p=&y; x=*p++;
A、x=5,y=5
B、x=5,y=6
C、x=6,y=5
D、x=6,y=6
(  C  )
8、以下选项中合法的实型常数是________。
A、5E2.0
B、E-3
C、0.2
D、1.3E
(  A  )
9、在c语言中,若函数调用时实参是数组名,则传递给对应形参的是______。
A、数组空间的首地址
B、数组的第一个元素值
C、数组中元素的个数
D、数组中所有的元素
(  B  )
10、c语言中的基本数据类型是________。
A、整型、浮点型、逻辑型、无值型和类类型
B、整型、字符型、浮点型、无值型和逻辑型
C、整型、浮点型、字符型、逻辑型和枚举型
D、整型、浮点型、逻辑型、无值型和指针型
(  C  )
11、关于下面的程序
#include<stdio.h>
main()
{
int x=3,y=0,z=0;
if(x=y+z)printf("****");
else printf("$$$$");
}
说法正确的是______。
A、有语法错误不能通过编译
B、输出****
C、输出$$$$
D、可以通过编译,但不能通过连接,无法运行
(  D  )
12、分析下列程序,其最终执行结果是______。
main()
{
int n[3],i,j,k;
for(i=0;i<3;i++)n[i]=o;
k=2;
for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]-1;
printf("%d\n",n[0]);
}
A、-2
B、-1
C、0
D、-3
(  D  )
13、请阅读程序:
#include<math.h>
#include<stdio.h>
main()
{
float a,b,c;
scanf("%f%f",&a,&b);
c=a/b;
while(1) {
if(fabs(c)>1.6) {
a=b;
b=c;
c=a/b;
}
else break;
}
printf("%f\n",b);
}
若运行时从键盘上输入3.6 2.4<回车>,则输出结果是______。
A、1.500000
B、1.600000
C、2.000000
D、2.400000
(  C  )
14、\、/、mod、*等4个算术运算符中,优先级最低的是________。
A、\
B、/
C、Mod
D、*
(  C  )
15、关于二进制,下列描述错误的是________。
A、二进制数由数字0和1表示
B、一个二进制数字0和1表示一位,八位为一个字节
C、由于二进制由数值较小的0和1表示,所以只能表示一部分数据
D、二进制与十进制相互转换,不改变值的大小
(  D  )
16、c语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为________。
A、该数组的长度
B、该数组的元素个数
C、该数组中各元素的值
D、该数组的首地址
(  C  )
17、假定double类型变量占用8个字节,且数组定义如下,则数组length在内存中所占字节数是________。double length [10];
A、0
B、10
C、80
D、160
(  C  )
18、计算表达式*执行下面的程序段,变量 b 的值将变为 ▁▁▁▁▁。double a = 3, b; b = 1 / 2 + a;
A、0.0
B、0.2
C、3.0
D、3.5
(  C  )
19、下面说法正确的是________。
A、文件指针变量的值是文件当前正在处理的字节地址
B、文件指针变量的值是文件中包含的字符个数
C、文件指针的类型是一种指针类型
D、文件指针的类型是结构体类型
(  D  )
20、在c 语言中,能表示无符号长整型常数的是________。
A、OL
B、4962710U
C、912374u
D、2UL

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

(   F  )
1、在c程序中,注释说明只能位于一条语句的后面。 
(   T  )
2、若函数体内没有return语句,程序的流程就执行到函数体的末尾,然后返回到调用函数。这时带回一个不确定的函数值。 
(   T  )
3、如果字符串常量所包含的字符个数等于数组长度,则在整体输出字符数组中的字符串时,会跟出一些不可预见的字符。 
(   T  )
4、在嵌套循环(多层循环)中, 每一层循环都应该使用自己的循环变量,以免互相干扰。 
(   F  )
5、若有定义int x = 1,y = 2; 则表达式x==y是将y的值赋值给x。() 
(   F  )
6、当一个c语言程序由多个文件模块组成时,整个程序可以包含多个main()函数。 
(   F  )
7、用puts和gets函数可以输入或输出多个字符串。 
(   F  )
8、文本文件和二进制文件都可以用 eof 作为文件结束标志。( ) 
(   F  )
9、在if语句中,else前一个语句可不加";". 
(   F  )
10、在标准c语言中, main 函数必须出现的所有其他函数之前 

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

1、编写程序:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
2、编写程序:写一个函数,求一个字符串的长度,在 main 函数中输入字符串,并输出其长度。
3、编写程序:编程实现输入5个学生的学号、计算他们的期中和期末成绩,然后计算其平均成绩,并输出成绩表