大理大学计算机C语言专升本试题

本试卷为大理大学计算机C语言专升本试题,题目包括:单项选择题。

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

本卷包括如下题型:

一、单项选择题

计算机C语言专升本试题

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

(  D  )
1、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。
A、k%2
B、k%2==1
C、(k%2)!=0
D、!k%2==1
(  A  )
2、c语言结构体类型变量在程序执行期间,________。
A、所有成员一直驻留在内存中
B、没有成员驻留在内存中
C、部分成员驻留在内存中
D、只有一个成员驻留在内存中
(  C  )
3、若有下列定义和语句: int u=011,v=0x11,w=11; printf("%o,%x,%d\n",u,v,w): 则输出结果是________。
A、9,17,11
B、9,11, 11
C、11,11, 11
D、11,17, 11
(  A  )
4、有如下程序:
main ()
{
int x = 1, a = 0, b = 0;
switch (x)
{
case 0:
b++;
case 1:
a++;
case 2:
a++;
b++;
}
printf ("a = %d, b = %d\n", a, b);
}
该程序的输出结果是________。
A、a=2,b=1
B、a=1,b=1
C、a=1,b=0
D、a=2 b=2
(  C  )
5、设有说明double(*p1)[n]; 其中标识符p1是________。
A、N个指向double型变量的指针。
B、指向N个double型变量的函数指针。
C、一个指向由N个double型元素组成的一维数组的指针。
D、具有N个指针元素的一维指针数组,每个元素都只能指向double型量。
(  D  )
6、c语言允许将一条语句写在两行上,下列语句不正确是________。
A、int a,
b;
B、int a
,b;
C、int
a,b;
D、int a,b
;
(  B  )
7、下面程序段执行结果是________。 int i=5,k; k=(++i)+(++i)+(i++); printf("%d,%d",k,i);
A、24,8
B、21,8
C、21,7
D、24,7。
(  D  )
8、设有如下程序段: int x=2002, y=2003; printf("%d\n",(x,y));
则以下叙述中正确的是________。
A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B、运行时产生出错信息
C、输出值为2002
D、输出值为2003
(  C  )
9、若在定义语句: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)
(  C  )
10、有以下程序
#include <stdio.h>
void fun(int *s,int nl,int n2)
{
int i,j,t;
i=nl;
j=n2;
while(i<j)
{
t=s[i];
s[i]=s[j];
s[j]=t;
i++;
j--;
}
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0}, k;
fun(a,0,3);
fun(a,4,9);
fun(a,0,9);
for(k=0;k<10;k++)printf("%d",a[k]);
printf("\n");
}
程序运行的结果是________。
A、0987654321
B、4321098765
C、5678901234
D、0987651234
(  C  )
11、已知int a[3][4]; 则对数组元素引用正确的是____
A、a[2][4]
B、a[1,3]
C、a[2][0]
D、a(2)(1)
(  A  )
12、c语言中函数返回值的类型是由 决定的.
A、函数定义时指定的类型
B、return语句中的表达式类型
C、调用该函数时的实参的数据类型
D、形参的数据类型
(  A  )
13、以下函数调用语句中实参的个数为 。 exce((v1,v2),(v3,v4,v5),v6);
A、3
B、4
C、5
D、6
(  B  )
14、以下对枚举类型名的定义中正确的是______。
A、enum a={ one , two , three} ;
B、enum a {one=9 , two=-1 , three} ;
C、enum a={"one" , "two" , "three"} ;
D、enum a {"one" , "two" , "three"} ;
(  C  )
15、有如下程序
#include<stdio.h>
void main( )
{
int i,sum=0;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是 _____________.
A、6
B、3
C、死循环
D、0
(  C  )
16、下列数据中,不合法的c语言实型数据的是________。
A、0.123
B、123e3
C、2.1e3.5
D、789.0
(  B  )
17、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
A、printf("%d",a[10];)
B、printf("%d",a[9]);
C、printf("%d",a[a.length]);
D、printf("%d",a[8]);
(  A  )
18、数组a[0…5,0…6]每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续内存单元中,则元素a[5][5]的地址为________。
A、1175
B、1180
C、1205
D、1210
(  B  )
19、文件系统实现按名存取主要通过( )来实现。
A、查找位示图
B、查找文件目录
C、查找作业表
D、内存地址转换
(  A  )
20、下面的语句中错误的是________。
A、int a=5;int x[a];
B、const int a=5;int x[a];
C、int n=5;int *p=new int [a];
D、const int n=5;int *p=new int[a];
(  D  )
21、以下正确的说法是______。
A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其对应的形参共用一个存储单元
C、只有当实参和与其对应的形参同名时才共用存储单元
D、型参是虚拟的,函数在没有被调用时,不占用存储单元
(  B  )
22、若变量已正确定义并赋值,以下符合c语言语法的表达式是________。
A、a:=b+1
B、a=b=c+2
C、int 18.5%3
D、a=a+7=c+b
(  A  )
23、表示关系x<=y<=z的c语言表达式为______。
A、(x<=y)&&(y<=z)
B、(x<=y)and(y<=z)
C、(x<=y<=z)
D、(x<=y)&(y<=z)
(  A  )
24、下列定义数组的语句中,正确的是______。
A、#define N 10
int x[N];
B、int N=10;
int x[N];
C、int x[0...10];
D、int x[];
(  C  )
25、以下选项中属于c语言数据类型的是________。
A、复数型
B、逻辑型
C、双精度型
D、集合型
(  B  )
26、下列叙述中正确的是________。
A、在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式
B、实型变量中允许存放整型数
C、若a和b类型相同,在执行了赋值a=b后,b中的值将放入a中,但b中的值不变
D、在c程序中,求余运算符“%”两边的类型相同时才能进行运算
(  A  )
27、有以下程序:
#include <stdio.h>
main()
{
int a=1,b=2;
for(;a<12;a++)
{
b+=a*2;
a+=3;
}
printf("%d,%d\n",b,a);
}
程序运行后的输出结果是________。
A、32,13
B、46,10
C、72,13
D、72,10
(  B  )
28、下列选项中c语言中不合法的字符串常量的是________。
A、"\121"
B、'y'
C、"\n\n"
D、"ABCD\x6d\
(  A  )
29、以下选项中合法的c语言字符常量是________。
A、'\t'
B、"A"
C、67
D、A
(  A  )
30、以下不合法的字符常量是________。
A、'\018'
B、'\'"
C、'\\'
D、'\xcc'
(  A  )
31、若有以下程序
#include<stdio.h>
#define S(x)(x)*(x)
#define T(x)S(x)/S(x)+1
main()
{
int k=3,j=2;
printf("%d,%d\n",S(k+j),T(k+j));
}
则程序的输出结果是______。
A、25,26
B、25,2
C、11,12
D、11,2
(  B  )
32、以下程序段的执行结果为
#define PLUS(X,Y)X+Y
main()
{
int x=1,y=2,z=3,sum;
sum=PLUS(x+y,z)*PLUS(y,z);
printf("SUM=%d",sum);
}
A、SUM=9
B、SUM=12
C、SUM=18
D、SUM=28
(  A  )
33、下列语句中正确的是________。
A、char*myString="Hello-World!";
B、char myString="Hello-World!";
C、char myString[11]=”Hello-World!”;
D、char nlyString[12]="Hello-World!";
(  C  )
34、函数调用时,基本的参数传递方式有传值与传地址两种, (23) 。
A、在传值方式下,形参将值传给实参
B、在传值方式下,实参不能是数组元素
C、在传地址方式下,形参和实参间可以实现数据的双向传递
D、在传地址方式下,实参可以是任意的变量和表达式
(  B  )
35、设有以下说明语句:
struct stu
{
int a;
float b;
}
suttype;
则下面叙述不正确的是________。
A、struct是结构体类型的关键字
B、struct stu是用户定义的结构体类型
C、suttype是用户定义的结构体类型名
D、a和b都是结构体成员
(  A  )
36、在int a[ ][3] = {{1,4}, {3,2}, {4,5,6}, {0}};
中,a[2][1]的值是________。
A、5
B、0
C、6
D、2
(  A  )
37、下面选项中表示主函数的是?
A、main()
B、int
C、printf()
D、return
(  C  )
38、下列选项中,不能正确定义c语言整型常量是?
A、32L
B、51000
C、-1.2
D、567
(  C  )
39、空语句仅有一个 ▁▁▁▁▁ 的语句称为空语句。
A、逗号( , )
B、句号( . )
C、分号( ; )
D、冒号( : )
(  D  )
40、有以下程序
main()
{
int k=5,n=0;
while(k>0)
{
switch(k)
{
default : break;
case 1 : n+=k;
case 2 :
case 3 : n+=k;
}
k--;
}
printf("%d\n",n);
}
程序运行后的输出结果是________。
A、4
B、5
C、6
D、7
(  D  )
41、下列字符序列中,可用作c标识符的一组字符序列是________。
A、S.b,sum,average,_above
B、class,day,lotus_1,2day
C、#md,&12x,month,student_n!
D、D56,r_1_2,name,_st_1
(  D  )
42、下列程序的输出为________。
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
A、y=0
B、while构成无限循环
C、y=1
D、y=-1
(  A  )
43、两个指针变量不可以________。
A、相加
B、比较
C、相减
D、指向同一地址
(  A  )
44、打开文件时,方式"w"决定了对文件进行的操作是________。
A、只写盘
B、只读盘
C、可读可写盘
D、追加写盘
(  D  )
45、若有以下的定义:int t[3][2];
能正确表示t数组元素地址的表达式是________。
A、&t[3][2]
B、t[3]
C、&t[1]
D、t[2]
(  D  )
46、下列个选项中,合法的c语言关键字是________。
A、integer
B、sin
C、string
D、void
(  A  )
47、定义如下变量和数组: int k,a[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是________。for(k=0;k<3;k++) printf("%d ",a[k][2-k]);
A、3 5 7
B、3 6 9
C、1 5 9
D、1 4 7
(  A  )
48、char *match(char c)是()。
A、函数定义的头部
B、函数预说明
C、函数调用
D、指针变量说明
(  A  )
49、在 C语言中,为了结束由 while 语句构成的循环,while 后一对圆括号中表达式的值应该为()。
A、0
B、1
C、TRUE
D、非 0
(  D  )
50、若有说明:int a[3][4];则数组 a 中各元素()。
A、可在程序的运行阶段得到初值 0
B、可在程序的编译阶段得到初值 0
C、不能得到确定的初值
D、可在程序的编译或运行阶段得到初值 0