蚌埠医学院历年计算机C语言专升本

本试卷为蚌埠医学院历年计算机C语言专升本,题目包括:单项选择题。

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

本卷包括如下题型:

一、单项选择题

计算机C语言专升本

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

(  D  )
1、能正确表示a和b同时为正或同时为负的逻辑表达式是________。
A、(a>=0‖b>=0)&&(a<0‖b<0)
B、(a>=0&&b>=0)&&(a<0&&b<0)
C、(a+b>0)&&(a+b<=0)
D、a*b>0
(  C  )
2、以下四个程序中不能对两个整型值进行交换的是________。
A、void swap(int p,int q)
{
int *t,a;
t=&a;*t=*P;*p=*q;*q=*t;
}
main()
{
int a=10,b=20;
swap(&a,&b);
printf(”%d %d\n”,a,b);
)
B、void swap(int *p,int *q)
{
int t;
t=*p;*p=*q;*q=t;
}
main()
{
int a =10,b = 20;
swap(&a,&b);
printf(”%d %d\n”,a,b);
)
C、void swap(int *p,int *q)
{
int t;
t=*p;*p=*q;*q=t;
}
main()
{
int*a,*b;
*a=10,*b=20;
swap(a,b);
printf(”%d%d\n”,*a,*b);
)
D、void swap(int *p,int *q)
{
int t;
t=*p;*p=*q;*q=t;
}
main()
{
int a=10, b=20,*x=&a,*y=&b;
swap(x,y);
print(”%d %d\n”, a,b);
}
(  B  )
3、若有以下定义和语句:"double r=99,*p=&r;
*p=r;",则以下正确的叙述是________。
A、两个*p含义相同,都说明给指针变量P赋值
B、在“double r=99,*p=&r;”中,把r的地址赋值给了P所指的存储单元
C、语句“*p=r;”把变量r的值赋给指针变量P
D、语句“*p=r;”取变量r的值放回r中
(  C  )
4、下面的变量说明中________是正确的。
A、char:a, b, c;
B、char a; b; c;
C、char a, b, c;
D、char a, b, c
(  B  )
5、struct ex
{
int x ;
float y;
char z ;
}
example;
则下面的叙述中不正确的是________。
A、struct结构体类型的关键字
B、example是结构体类型名
C、x,y,z都是结构体成员名
D、struct ex是结构体类型
(  C  )
6、当c的值不为0时,在下列选项中不能正确将c的值赋给变量a、b的是________。
A、c=b=a;
B、(a=c)||(b=c);
C、(a=c)&&(b=c);
D、a=c=b;
(  B  )
7、若有"double a; ",则正确的输入语句是________。
A、scanf("%1f",a);
B、scanf("%f",&a);
C、seanf("%1f",&a);
D、scanf("1e",&a);
(  A  )
8、下面的函数调用语句中func函数的实参个数是________。 func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))
A、3
B、4
C、5
D、8
(  C  )
9、以下程序段________. x=-1;
do
{
x=x*x;
}
while(!x);
A、是死循环
B、循环执行二次
C、循环执行一次
D、有语法错误
(  C  )
10、以下不能对二维数组a进行正确初始化的语句是________。
A、int a[2][3]={0};
B、int a[][3]={{1,2},{0}};
C、int a[2][3]={{1,2},{3,4},{5,6}};
D、int a[][3] = {1,2,3,4,5,6}
(  C  )
11、有定义语句:int *p[4]; 以下选项中与此语句等价的是________。
A、int p[4];
B、int **p;
C、int *(p「4」);
D、int (*p)「4」;
(  D  )
12、设有定义:int n=0,*p=&n,**q=&p; 则以下选项中,正确的赋值语句是________。
A、p=1;
B、*q=2;
C、q=p;
D、*p=5;
(  A  )
13、已有函数 max ( a , b ),为了让函数指针变量 p 指向函数 max ,正确的赋值方法是______。
A、p=max ;
B、*p=max ;
C、p=max ( a , b );
D、*p=max ( a , b );
(  B  )
14、设有如下定义:
struct sk
{
int a ;
float b ;
}
data , *p ;
若有 p=&data ;
, 则对 data 中的 a 域的正确引用是______。
A、( *p ) .data.a
B、( *p ) .a
C、p->data.a
D、p.data.a
(  C  )
15、如有说明 : char s1[5],s2[7]; 要给数组 s1 和 s2 整体赋值 , 下列语句中正确的是 __________.
A、s1=getchar(); s2=getchar();
B、scanf("%s%s",s1,s2);
C、scanf("%c%c",s1,s2);
D、gets(s1,s2);
(  B  )
16、若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10 },*ia=a; 则不能正确表示a数组元素的表达式是 ______。
A、*ia
B、a[10]
C、*a
D、a[ia-a]
(  D  )
17、已知3个字符为:a、x和5,按它们的ascii码值升序排序,结果是________。
A、5<a<X
B、a<5<X
C、X<a<5
D、5<X<a
(  C  )
18、设
struct data
{
int a;
float b;
} c,*p=&c;
,引用正确的是________。
A、*p.a
B、p.b
C、p->a
D、*p->b
(  A  )
19、下列关于continue和break的描述正确的是________。
A、continue只能用于循环体中
B、break只能用于循环体中
C、continue只是一个语句标记
D、break只能用于switch语句块中
(  D  )
20、表达式a+=a-=a=9的值是________。
A、9
B、-9
C、18
D、0
(  B  )
21、以下选项中,不能作为合法常量的是________。
A、1.234e04
B、1.234e0.4
C、1.234e+4
D、1.234e0
(  B  )
22、现代计算机中采用二进制数制是因为二进制数的优点是______。
A、代码表示简短,易读
B、物理上容易实现且简单可靠;运算规则简单;适合逻辑运算
C、容易阅读,不易出错
D、只有0,1两个符号,容易书写
(  B  )
23、一个字长为8位的无符号二进制整数能表示的十进制数值范围是________。
A、0~256
B、0~255
C、1~256
D、1~255
(  A  )
24、下列程序的运行结果是________。
main()
{
int a=-5,b=1,c=1;
int x=0,y=2,z=0;
if(c>0)x=x+ y;
if(a<=0)
{
if(b>0) if(c<=0)y=x-y;
}
else if(c>0)y=x-y;
else z=y;
printf("%d,%d,%d\n",x,y,z);
}
A、2,2,0
B、2,2,2
C、0,2,0
D、2,0,2
(  A  )
25、有以下程序
#include<stdio.h>
void fun(int n,int*s) {
int f;
if(n==1)*s=n+1;
else fun(n-1,&f);
*s=f;
}
main() {
int x=0;
fun(4,&x);
printf("%d\n",x);
}
程序运行后的输出结果是______。
A、2
B、1
C、3
D、4
(  A  )
26、以下不能将s所指字符串正确复制到t所指存储空间的是______。
A、do*t++=*s++;while(*s);
B、for(i=0;t[i]=s[i];i++);
C、while(*t=*s)t++;s++;
D、for(i=0,j=0;t[i++]=s[j++];);
(  C  )
27、有以下程序
#include<stdio.h>
main ()
{
int i, j, x = 0;
for (i = 0; i < 2; i++)
x++;
for (j = 0; j <= 3; j++)
{
if (j % 2)
continue;
x++;
x++;
}
printf ("x=%d\n", x);
}
程序执行后的输出结果是______。
A、x=8
B、x=4
C、x=6
D、x=12
(  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、有以下程序:
#include <stdio.h>
main()
{
int i,s=0,t[] = {1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2) s+=*(t+i);
printf("% d \n ",s);
}
A、45
B、20
C、25
D、36
(  A  )
30、以下程序的输出结果是________。
main()
{
int x=0x02ff,y=0x0ff00;
printf("%d\n",(x&y)>>410x005f);
}
A、127
B、255
C、128
D、1
(  A  )
31、把十六进制数baf转换成二进制数________。
A、101110101111
B、110110101111
C、101110111111
D、111011011111
(  C  )
32、下列选项中,表示字符串末尾的结束标志是________。
A、'\n'
B、'\r'
C、'\0'
D、NULL
(  C  )
33、下列关于指针说法的选项中,正确的是________。
A、指针是用来存储变量值的类型
B、指针一旦定义就不能再指向别的变量
C、指针当中存储的是变量的内存地址
D、指针一旦定义必须要指向某一个变量
(  D  )
34、下列关于表达式的描述中,错误的是________。
A、常量和变量都是表达式
B、运算符类型对应表达式的类型
C、每一个表达式都有自己的值
D、表达式必须以分号结尾
(  A  )
35、有以下程序段int m=0,n=0;
char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:20b20↙,则输出结果是______。
A、20,B,20
B、20,b,20
C、20,b,0
D、20,B,0
(  C  )
36、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。
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);
(  A  )
37、有以下程序
main()
{
char ch[]="uvwxyz",*pc;
pc=ch;
printf("%c\n",*(pc+5));
}
程序运行后的输出结果是______。
A、z
B、0
C、元素ch[5]的地址
D、字符y的地址
(  B  )
38、某学校有1500名学生,若用二进制来编学号,需要多少位来表示。
A、10
B、11
C、12
D、13
(  D  )
39、下列运算符结合性不同的是________。
A、+
B、%
C、/
D、=
(  D  )
40、设有下面的程序段:char s[]="china"; char *p=s; 则下列叙述正确的是____。
A、数组s中的内容和指针变量p中的内容相等
B、s和p完全相同
C、s数组长度和p所指向的字符串长度相等
D、*p与s[0]相等
(  B  )
41、以下叙述中正确的是________。
A、在 C 程序中的八进制和十六进制,可以是浮点数
B、整型变量可以分为 int 型、short 型、long 型和 unsigned 型四种
C、八进制数的开头要使用英文字母 o,否则不能与十进制区分开
D、英文大写字母 X 和英文小写字母 x 都可以作为二进制数字的开头字符
(  B  )
42、有以下程序
main()
{
int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{
ptr=a+i;
scanf("%d",ptr);
ptr++;
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++) printf("%2d",a[i][j]);
printf("\n");
}
}
若运行时输入:1 2 3<回车>,则输出结果是______。
A、产生错误信息
B、10
C、12
D、1020 30 2000 00 30
(  D  )
43、c语言中函数调用的方式有________。
A、函数调用作为语句一种
B、函数调用作为函数表达式一种
C、函数调用作为语句或函数表达式两种
D、函数调用作为语句、函数表达式或函数参数三种
(  A  )
44、若调用一个函数,且此函数中没有return语句,则正确的说法是: 该函数________。
A、没有返回值
B、返回若干个系统默认值
C、能返回一个用户所希望的值
D、返回一个不确定的值
(  C  )
45、c程序的基本结构单位是________。
A、文件
B、语句
C、函数
D、表达式
(  A  )
46、下列字符数组长度为5的是________。
A、char a[]={'h', 'a', 'b', 'c', 'd'};
B、char b[]= {'h', 'a', 'b', 'c', 'd', '\0'};
C、char c[10]= {'h', 'a', 'b', 'c', 'd'};
D、char d[6]= {'h', 'a', 'b', 'c', '\0' };
(  B  )
47、以下程序的输出结果是________。 。
main()
{
int x=1,y=0,a=1,b=1;
switch(x)
{
case 1:switch(y)
{
case 0:a++;
break;
case 1:b++;
break;
}
case 2:a++;
b++;
break;
}
printf("%d,%d\n",a,b);
}
A、2,1
B、3,2
C、2,3
D、3 2
(  D  )
48、若二维数组a 有m 列,则计算任一元素a[i][j] 在数组中位臵的公式为(假设a[0][0] 位于数组的第一个位臵上) ________。
A、i*m+j
B、j*m+i
C、i*m+j-1
D、i*m+j+1
(  B  )
49、一个程序由若干文件组成,共用同一变量,则此变量的存储类别应该为________。
A、auto
B、extern
C、static
D、Register
(  C  )
50、以下叙述中正确的是()。
A、在程序的一行上可以出现多个有效的预处理命令行
B、使用带参的宏时,参数的类型应与宏定义时的一致
C、宏替换不占用运行时间,只占编译时间
D、在以下定义中 C R 是称为"宏名"的标识符 #define C R 045