中国戏曲学院往年C语言程序设计专升本练习

本试卷为中国戏曲学院往年C语言程序设计专升本练习,题目包括:单项选择题。

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

本卷包括如下题型:

一、单项选择题

C语言程序设计专升本练习

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

(  A  )
1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。
A、1
B、0
C、2
D、不知道a的值,不能确定
(  B  )
2、当变量c的值不为2、4、6时,值也为"真"的表达式是________。
A、(c==2)‖(c==4)‖(c==6)
B、(c>=2&&c<=6)‖(c!=3)‖(c!=5)
C、(c>=2&&c<=6)&&!(c%2)
D、(c>=2&&c<=6)&&(c%2!=1)
(  D  )
3、有以下程序:
main()
{
char ch[3][5]={"aaaa","bbb","cc"};
printf("%s\n",ch[l]);
}
程序运行后的输出结果是________。
A、AAA
B、CC
C、BBBCC
D、BBB
(  D  )
4、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s; 则以下选项中正确的是________。
A、if(s1>s2)S;
B、if(strcmp(s1,s2))S;
C、if(strcmp(s2,sl)>O)S;
D、if(stremp(s1,s2)>O)S;
(  C  )
5、c语言规定:main函数的位置________。
A、必须在最开始
B、必须在系统调用的库函数的后面
C、可以任意
D、必须在最后
(  C  )
6、以下对二维数组a的正确说明是________。
A、int a[3][]
B、float a(3,4)
C、double a[1][4]
D、float a(3)(4)
(  A  )
7、若有定义 int a;
float b;
double c;
程序运行时输入: 3 4 5<回车>能把值3输入给变量a、4输入给变量b、5输入给变量c的语句是________。
A、scanf("%d%f%lf", &a,&b,&c);
B、scanf("%d%lf%lf", &a,&b,&c);
C、scanf("%d%f%f", &a,&b,&c);
D、scanf("%lf%lf%lf", &a,&b,&c);
(  C  )
8、若有定义:int aa[ 8]; 则以下表达式中不能代表数组元aa[1]的地址的是________。
A、&aa[0]+1
B、&aa[1]
C、&aa[0]++
D、aa+1
(  C  )
9、有以下程序
#include <stdio.h>
main()
{
int a[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{
case 0: switch(a[i]%2)
{
case 0:a[i]++;
break;
case 1:a[i]--;
}
break;
case 1:a[i]=0;
}
for(i=0;i<4;i++) printf("%d ",a[i]);
printf("\n");
}
程序运行后的输出结果是________。
A、3 3 4 4
B、2 0 5 0
C、3 0 4 0
D、0 3 0 4
(  A  )
10、在执行 int a[][3]={ 1,2,3,4,5,6};语句后, a[1][0] 的值是______。
A、4
B、1
C、2
D、5
(  A  )
11、执行下面程序时 , 若从键盘输入 "2<cr>" ,则程序的运行结果是 __________.
#include <stdio.h>
void main( )
{
int k;
char cp;
cp=getchar( );
if (cp>='0' && cp<='9') k=cp-'0';
else if (cp>='a' && cp<='f') k=cp-'a'+10;
else k=cp-'a'+10;
printf("%d\n",k);
}
A、2
B、4
C、1
D、10
(  A  )
12、下面程序的输出结果是 _____________.
#include<stdio.h>
void main( )
{
int i;
for(i=1;i<6;i++)
{
if (i%2!=0)
{
printf("#");
continue;
}
printf("*");
}
printf("\n");
}
A、#*#*#
B、#####
C、*****
D、*#*#*
(  C  )
13、c 语言中,若未说明函数的类型,则系统默认该函数的类型是 __________ 。
A、float 型
B、long 型
C、int 型
D、double 型
(  A  )
14、在c语言中,变量的隐含存储类别是________。
A、auto
B、static
C、extern
D、无存储类别
(  B  )
15、设int*p[4]; 则标识符p是________。
A、整型数组名
B、指针数组名
C、指针函数名
D、指向整型变量的指针
(  C  )
16、程序中对fun函数有如下说明 void*fun(); 此说明的含义是________。
A、fun函数无返回值
B、fun函数的返回值可以是任意的数据类型
C、fun函数的返回值是无值型的指针类型
D、指针fun指向一个函数、该函数无返回值
(  C  )
17、下列关于变量作用域的描述中,不正确的是________。
A、变量属性是用来描述变量作用域的
B、局部变量作用域只能是它所在方法的代码段
C、类变量能在类的方法中声明
D、类变量的作用域是整个类
(  A  )
18、下列是用户自定义标识符的是________。
A、_w1
B、3_xy
C、int
D、LINE-3
(  C  )
19、变量a所占的内存字节数是______。
union u{
char st[4];
int i;
long l;
};
struct A {
int c;
union u;
} a;
A、4
B、5
C、6
D、8
(  C  )
20、在下列选项中,没有构成死循环的程序段是________。
A、int i=100;
for(;;) {
i=i%10+1;
if(i>10)
break;
}
B、while(1);
C、int k=0;
do
{
++k;
}
while(k<=10);
D、int s=12;
while(s);
--s;
(  A  )
21、有一个数是123,它与十六进制数53相等,那么该数值是________。
A、八进制数
B、十进制数
C、五进制
D、二进制数
(  B  )
22、结构化程序设计所规定的三种基本控制结构是________。
A、输入、输出、处理
B、顺序结构、选择结构、循环结构
C、for、while、switch
D、主程序、子程序、函数
(  D  )
23、以下叙述不正确的是________。
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
(  B  )
24、串是任意有限个 (46) 。
A、符号构成的集合
B、字符构成的序列
C、字符构成的集合
D、符号构成的序列
(  B  )
25、int a[5],*p=a; 对a数组元素地址的正确引用是________。
A、p+5
B、&a[0]
C、&a+1
D、*a+1
(  B  )
26、请读程序段:char str[]="abcd",*p=str; printf("%d\n",*(p+4));
程序段的输出结果是 ______。
A、68
B、0
C、字符D的地址
D、不确定的值
(  D  )
27、有以下程序
#include<stdio.h>
main ()
{
int i, n;
for (i = 0; i < 8; i++)
{
n = rand () % 5;
switch (n)
{
case 1:
case 3:
printf ("%d\n", n);
break;
case 2:
case 4:
printf ("%d\n", n);
continue;
case 0:
exit (0);
}
printf ("%d\n", n);
}
}
以下关于程序执行情况的叙述,正确的是______。
A、for循环语句固定执行8次
B、当产生的随机数n为4时结束循环操作
C、当产生的随机数n为1和2时不做任何操作
D、当产生的随机数n为0时结束程序运行
(  A  )
28、有以下程序
#include<string.h>
main()
{
char p[]={'a','b','c'},q[10]={'a','b','c'};
printf("%d%d\n",strlen(p),strlen(q));
}
以下叙述中正确的是________。
A、在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B、由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3
C、由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
D、由于p和q数组中都没有字符串结束符,故长度都不能确定
(  C  )
29、下面判断正确的是________。
A、char*a="china";等价于char *a;*a="china";
B、char str[5]="china";等价于char str[]="china";
C、char*S="china";等价于char *S;S="china";
D、char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";
(  A  )
30、下列语句中,正确的是______。
A、static char str[]="China";
B、static char str[];str="China";
C、static char str1[5],str2[]="China";strl=str2;
D、static char str1[],str2[];str2="China";strcpy(str1,str2);
(  C  )
31、下列数组的定义中,错误的是________。
A、char ca1[]='c','m','n';
B、char ca2[6]="name";
C、char ca3[4]="your";
D、int array[]=1,2,3,4;
(  A  )
32、下面程序的运行结果是________。
#include <stdio.h>
void main()
{
int y=10;
do
{
y--;
}
while(--y);
printf("%d\n",y--);
}
A、-1
B、1
C、8
D、0
(  D  )
33、c语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为________。
A、该数组的长度
B、该数组的元素个数
C、该数组中各元素的值
D、该数组的首地址
(  B  )
34、若执行下面的程序时从键盘上输入3和4,
main()
{
int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a<b)s=b;
s=s*s;
printf("%d\n",s);
}
则输出是______。
A、9
B、16
C、18
D、20
(  C  )
35、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。
A、char st[4][5]={"ABCDE"};
B、char s[5]={'A','B','C','D','E'};
C、char *s="ABCDE";
D、char *s; scanf("%s",*s);
(  B  )
36、一个字节代表几位二进制数():
A、1
B、8
C、16
D、根据计算机的位数决定
(  C  )
37、流程图中判断框是用( )图形来表示的
A、椭圆
B、矩形
C、菱形
D、平行四边形
(  C  )
38、在c语言中,系统为一个结构体变量分配的内存是________。
A、各成员所需内存量的总和
B、结构体第一个成员所需的内存量
C、成员中占内存量最大者所需的容量的整数倍
D、结构体中最后一个成员所需的内存量
(  B  )
39、设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为________。
A、EOF
B、非0值
C、0
D、NULL
(  A  )
40、以下关于静态变量的说法正确的是________。
A、函数中的静态变量其所占内存在函数退出后不被释放
B、静态变量和常量的作用相同
C、静态变量只可以赋值一次赋值后则不能改变
D、静态全局变量的作用域为一个程序的所有源文件
(  B  )
41、一个算法应当具有五个特性,以下叙述中正确的是________。
A、有穷性、确定性、复杂性、有零个或多个输入、有一个或多个输出
B、有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出
C、有穷性、确定性、可行性、必须要有一个以上的输入、有一个或多个输出
D、有穷性、确定性、复杂性、有零个或多个输入、必须要多个输出
(  C  )
42、以下叙述中正确的是________。
A、对于逻辑表达式:a++||b++,设 a 的值为 1,则求解表达式的值后,b的值会发生改变
B、对于逻辑表达式:a++&&b++,设 a 的值为 0,则求解表达式的值后,b的值会发生改变
C、else 不是一条独立的语句,它只是 if 语句的一部分
D、关系运算符的结果有三种:0,1,-1
(  A  )
43、下面选择中正确的赋值语句是(设char a[5],*p=a;)________。
A、p="abcd";
B、a="abcd";
C、*p="abcd";
D、*a="abcd";
(  D  )
44、以下选项中不能正确赋值的是________。
A、char *s; s="student";
B、char *s="student";
C、char s[]="student";
D、char s[10]; s="student";
(  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、下述程序的运行结果是________。
#include<stdio.h>
void fun(int x)
{
putchar('0'+(x% 10));
fun(x/10);
}
main( )
{
printf(''\n'');
fun(1234);
}
A、4321
B、321
C、21
D、1
(  A  )
47、以下叙述中错误的是
A、用户所定义的标识符允许使用关键字
B、用户所定义的标识符应尽量做到"见名知意"
C、用户所定义的标识符必须以字母或下划线开头
D、用户定义的标识符中,大、小写字母代表不同标识
(  A  )
48、以下函数调用语句中实参的个数是()。
func((e1,e2),(e3,e4,e5));
A、2
B、3
C、5
D、语法错误
(  B  )
49、以下语句中,不能实现回车换行的是()。
A、printf("\n");
B、putchar("\n");
C、fprintf(stdout,"\n");
D、fwrite("\n",1,1,stdout);
(  C  )
50、以下叙述中正确的是 ()。
A、C语言比其他语言高级
B、C语言可以不用编译就能被计算机识别执行
C、C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D、C语言出现的最晚,具有其他语言的一切优点