中国美术学院C语言专升本测试卷

本试卷为中国美术学院C语言专升本测试卷,题目包括:单项选择题。

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

本卷包括如下题型:

一、单项选择题

C语言专升本测试卷

一、单项选择题 (共50题,每题2分,共计100分)

(  B  )
1、若有定义语句:int x=10; ,则表达式x-=x+x的值为
A、-20
B、-10
C、0
D、10
(  C  )
2、以下叙述错误的是________。
A、一个C程序可以包含多个不同名的函数
B、一个C程序只能有一个主函数
C、C程序在书写时,有严格的缩进要求,否则不能编译通过
D、C程序的主函数必须用main作为函数名
(  B  )
3、c语言源程序名的后缀是________。
A、.exe
B、.C
C、.obj
D、.cp
(  B  )
4、数据的存储结构是指________。
A、数据所占的存储空间
B、数据的逻辑结构在计算机中的存放形式
C、数据在计算机中的顺序存储方式
D、存储在计算机外存中的数据
(  B  )
5、已知在ascii代码中,字母b的序号为66,以下程序的输出的结果是________。
main()
{
char c1='b', c2='d';
printf("%d,%c\n",c1,c2);
}
A、B, 66
B、66,D
C、B,D
D、66,68
(  D  )
6、c语言的程序一行写不下时,可以 ( ) 。
A、用逗号换行
B、用分号换行
C、在任意一空格处换行
D、用回车符换行
(  C  )
7、若在定义语句:int a,b,c*p=&c; 之后,接着执行以下选项中的语句,则能正确执行的语句是________。
A、scanf(“%d”,a,b,c);
B、scanf(“%d%d%d”,a,b,c);
C、scanf(“%d”,p);
D、scanf(“%d”,&p)
(  B  )
8、若函数中有定义语句:int k; 则
A、系统将自动给k赋初值0
B、这时k中的值无定义
C、系统将自动给k赋初值-1
D、这时k中无任何值
(  A  )
9、若 x 是 int 型变量 ,y 是 float 型变量 , 所用的 scanf 调用语句格式为 : scanf("x=%d,y=%f",&x,&y); 则为了将数据 10 和 66.6 分别赋给 x 和 y, 正确的输入应是 : 。
A、x=10,y=66.6< 回车 >
B、10 66.6< 回车 >
C、10< 回车 >66.6< 回车 >
D、x=10< 回车 >y=66.6< 回车
(  C  )
10、对于类型相同的两个指针变量之间,不能进行的运算是______。
A、<
B、=
C、+
D、-
(  D  )
11、有如下定义
struct person
{
char name[9] ;
int age ;
};
struct person class[10]={" johu" , 17 , "paul" , 19 , "mary" , 18 , "adam" , 16};
根据上述定义,能输出字母 m 的语句是______。
A、prinft ( " %c\n" , class[3].name );
B、printf ( " %c\n" , class[3].name[1] );
C、prinft ( " %c\n" , class[2].name[1] );
D、printf ( " %c\n" , class[2].name[0] );
(  C  )
12、在定义 int a[5][6]; 后,数组 a 中的第 10 个元素是__________ (设 a[0][0] 为第一个元素)
A、a[2][5]
B、a[2][4]
C、a[1][3]
D、a[1][5]
(  B  )
13、以下函数调用语句中含有实参个数为 __________. func((exp1,exp2),(exp3,exp4,exp5));
A、1 个
B、2 个
C、4 个
D、5 个
(  D  )
14、在浮点数编码表示中, (1) 在机器数中不出现,是隐含的。
A、阶码
B、符号
C、尾数
D、基数
(  B  )
15、有如下说明: int a[10]=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为9的表达式是________。
A、*p+9
B、*(p+8)
C、*p+=9
D、p+8
(  C  )
16、若有定义int a[10],*p=a; 则p+5表示的是________。
A、a[5]的值
B、a[6]的值
C、a[5]的地址
D、a[6]的地址
(  A  )
17、执行完语句int [] x= new int [25]; 后,则下列哪项说法是正确的
A、x[24]值为0
B、x[24]值未定义
C、x[25]值为0
D、x[0]值为空
(  C  )
18、文件系统的主要目的是________。
A、实现虚拟存储管理
B、用以存储系统文档
C、提高存储空间的利用率
D、实现目录检索
(  A  )
19、下列关于指针运算的描述中,错误的是________。
A、在一定条件下,两个指针可以相加
B、在一定条件下,两个指针可以进行逻辑判断
C、在一定条件下,指针可以为空值
D、在一定条件下,两个指针可以相互赋值
(  C  )
20、排序的重要目的是为了以后对已排序的数据元素进行________。
A、打印输出
B、分类
C、查找
D、合并
(  B  )
21、以下关于switch语句和break语句的描述中,正确的是______。
A、在switch语句中必须使用break语句
B、在switch语句中,可以根据需要使用或不使用break语句
C、break语句只能用于switch语句中
D、break语句是switch语句的一部分
(  C  )
22、c语言中,可用于说明函数的是________。
A、auto或static
B、extern或auto
C、static或extern
D、auto或register
(  C  )
23、假定a为一个整型数组名,则元素a[4]的字节地址为
A、a+4
B、a+8
C、a+16
D、a+32
(  C  )
24、以下不正确的是 ______。
A、语句for(i=0:;i++)表示无限循环
B、for(; ;)表示无限循环
C、for()也表示无限循环
D、while(1)表示无限循环
(  B  )
25、现代计算机中采用二进制数制是因为二进制数的优点是______。
A、代码表示简短,易读
B、物理上容易实现且简单可靠;运算规则简单;适合逻辑运算
C、容易阅读,不易出错
D、只有0,1两个符号,容易书写
(  B  )
26、下列关于串的叙述中,哪一条是正确的( )
A、串是由至少1个字符组成的有限序列
B、串中字符的数目就是串的长度
C、空串就是由空格构成的串
D、串只能顺序存储
(  A  )
27、假设px和py分别表示x和y商品的价格,当边际替代率mrsxy>px/py,消费者为达到最大效用,他将会________。
A、增加X商品的购买,减少Y商品的购买
B、减少X商品的购买,增加Y商品的购买
C、同时增加或者减少X和Y商品的购买
D、对X和Y商品的购买数量不发生改变
(  D  )
28、有以下程序:
main( )
{
char a[ ]={‘a',‘b',‘c',‘d',‘e',‘f',‘g',‘h',‘\0'};
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\n",i,j);
}
程序运行后的输出结果是________。
A、9,9
B、8,9
C、1,8
D、9,8
(  B  )
29、有以下程序
#include<stdio.h>
int fun(int a,int b) {
if(b=0)return a;
else return(fun(--a,--b));
}
main() {
printf("%d\n",fun(4,2));
}
程序的运行结果是________。
A、1
B、2
C、3
D、4
(  D  )
30、#include<stdio.h>
#define N 4
void fun (int a[][N], int b[], int flag)
{
int i, j;
for (i = 0; i < N; i++) b[i] = a[i][0];
for (j = 1; j < N; j++) {
if (flag && (b[i] > a[i][j]) && (b[i] < a[i][j])) b[i] = a[i][j];
}
}
void main()
{
int x[N][N] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }, y[N], i;
fun (x, y, 1);
for (i = 0; i < N; i++)
printf ("%d,", y[i]);
fun (x, y, 0);
for (i = 0; i < N; i++)
printf ("%d,", y[i]);
printf ("\n");
}
A、13,14,15,16,1,2,3,4,
B、4,8,12,16,1,5,9,13,
C、1,2,3,4,13,14,15,16,
D、1,5,9,13,4,8,12,16,
(  A  )
31、若要对a进行++运算,则a应具有下面说明
A、int a[3][2];
B、char*a[]"12","ab";
C、char(*a)[3];
D、int b[10],*a=b;
(  B  )
32、下列程序的输出结果是
#include<stdio.h>
main()
{
int i,a=0,b=0;
for(i=1;i<10;i++)
{
if(i%2==0)
{
a++;
continue;
}
b++;
}
printf("a=%d,b=%d",a,b);
}
A、a=4,b=4
B、a=4,b=5
C、a=5,b=4
D、a=5,b=5
(  C  )
33、若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是________。
A、switch(x) {
case 1.0 : printf("*\n");
case 2.0 : printf("**\n");
}
B、switch((int)x); {
case 1 : printf("*\n");
case 2 : printf("**\n");
}
C、switch(a+b) {
case 1: printf("*\n");
case 2+1: printf("**\n");
}
D、switch(a+b) {
case 1 : printf("*\n");
case c : printf("**\n");
}
(  D  )
34、下列字符常量的写法中,正确的是________。
A、'abc'
B、'\5A'
C、A
D、'\73'
(  D  )
35、已知三个字符为a、z和8,按它们的ascii码值升序排序,结果是________。
A、8,a,Z
B、a,8,Z
C、a,Z,8
D、8,Z,a
(  A  )
36、以下不能用于实型数据的运算符是________。
A、%
B、/
C、*
D、+
(  B  )
37、宏定义用于将一个标识符定义为一个
A、常量
B、字符串
C、整数
D、长整数
(  A  )
38、以下答案中不是c语言最基本数据类型的是________。
A、逻辑型
B、整型
C、字符型
D、指针型
(  B  )
39、对于代码 char c1[8];
scanf("%s",c1);
printf("\n%s",c1);
在程序运行时,输入了"this pretty boy",则对应的运行输出显示结果是________。
A、this pre
B、this
C、this pretty boy
D、数组越界,不能显示
(  C  )
40、下面的代码int i=10; 之后的for循环语句,语法正确,不会编译出错的是________。
A、for(i=0,i<10,i++)
B、for{
i=0;i<10;i++}
C、for( ;i>5;i--)
D、for(i=0;i<10;i++;)
(  C  )
41、下列函数中,能够从键盘获得一个字符数据的函数是________。
A、puts()
B、putchar()
C、getchar()
D、gets()
(  A  )
42、以下关于逻辑运算符两侧运算对象的叙述中正确的是________。
A、可以是任意合法的表达式
B、只能是整数 0 或非 0 整数
C、可以是结构体类型的数据
D、只能是整数 0 或 1
(  B  )
43、下列程序执行后的输出结果是________。
#define MA(x) x*(x-1)
main()
{
int a=1,b=2;
printf(""%d \n"",MA(1+a+b));
}
A、6
B、8
C、10
D、12
(  D  )
44、以下程序的输出结果是________。
main()
{
int i,j,k,a=3,b=2;
i=(--a==b++)?--a:++b;
j=a++;
k=b;
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
A、i=2,j=1,k=3
B、i=1,j=1,k=2
C、i=4,j=2,k=4
D、i=1,j=1,k=3
(  C  )
45、有以下程序
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+2;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序运行后的输出结果是________。
A、250.00
B、250
C、285.00
D、285
(  A  )
46、c语言的if语句中,用作判断的表达式为____
A、任意表达式
B、逻辑表达式
C、关系表达式
D、算术表达式
(  B  )
47、下面用户自定义的标识符中,合法的是________。
A、break
B、Volume_1
C、4s
D、a+b
(  D  )
48、以下可作为函数fopen中第一个参数的正确格式是________。
A、c:user\text.txt
B、c:\user\text.txt
C、"c:\user\text.txt"
D、"c:\\user\\text.txt"
(  C  )
49、以下不正确的if 语句形式是________。
A、if (x>y&&x!=y);
B、if (x==y) x+=y;
C、if(x!=y) scanf("%d",&x) else scanf("%d",&y);
D、if(x<y) {x++;y++;}
(  B  )
50、任何一个 C语言的可执行程序都是从____开始执行的.
A、程序中的第一个函数
B、main( )函数的入口处
C、程序中的第一条语句
D、编译预处理语句