蚌埠医学院2023年C语言程序设计专升本考题

本试卷为蚌埠医学院2023年C语言程序设计专升本考题,题目包括:单项选择题。

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

本卷包括如下题型:

一、单项选择题

C语言程序设计专升本考题

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

(  B  )
1、以下能正确定义二维数组的是________。
A、int a[][3];
B、int a[][3]={2*3};
C、int a[][3]={};
D、int a[2][3]={{1},{2},{3,4}};
(  B  )
2、c语言中,下列不合法的字符串常量是________。
A、”\121”
B、'y='
C、”\n\n”
D、”ABCD\x6d”
(  C  )
3、若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是________。
int[3][3],*pt[3],k;
for(k=0;k<3;k++)
pt[k]-&t[k][0];
A、t[2]Eo]
B、t[2][2]
C、tell[2]
D、t[2][1]
(  B  )
4、若有以下定义和语句:"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中
(  B  )
5、若有定义"int b[8],*p=b;",则p+6表示( )。
A、数组元素b[6]的值
B、数组元素b[6]的地址
C、数组元素bE73的地址
D、数组元素hEo]的值加上6
(  A  )
6、与数学公式a•b/x•y不等价的语句是________。
A、a*b/x*y
B、a*b/x/y
C、a*b/(x*y)
D、a/(x*y)*b
(  C  )
7、若有说明和语句 int a=5; a++; 此处表达式a++的值是________。
A、7
B、6
C、5
D、4
(  B  )
8、在64位计算机中,一个字长所占字节数为________。
A、64
B、8
C、4
D、1
(  B  )
9、以下能正确定义一维数组的选项是________。
A、int num[];
B、#define N 100
int num[N];
C、int num[0..100];
D、int N=100;
int num[N];
(  D  )
10、以下程序的输出结果是
int f()
{
static int i=0;
int s=1;
s+=i;
i++;
return s;
}
main()
{
int i,a=0;
for(i=0;i<5;i++) a+=f();
printf("%d\n",a);
}
A、20
B、24
C、25
D、15
(  D  )
11、char *s="\t\\name\\address\n"; 指针 s 所指字符串的长度为: 。
A、说明不合法
B、19
C、18
D、15
(  C  )
12、以下正确的叙述是______。
A、C 语言允许 main 函数带形数,且形参个数和形参名均可由用户指定
B、C 语言允许 main 函数带形参,形参名只能是 argc 和 argv
C、当 main 函数带有形参时,传给形参的值只能从命令行中得到
D、有说明 : main ( int argc,char *argv ),则形参 argc 的值必须大于 1
(  D  )
13、下列一维数组初始化语句中,正确且与语句 float a[ ]={ 0,3,8,0,9}; 等价的是 __________.
A、float a[6]={
0,3,8,0,9};
B、float a[4]={
0,3,8,0,9};
C、float a[7]={
0,3,8,0,9};
D、float a[5]={
0,3,8,0,9};
(  D  )
14、若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是________。
A、a[g-c]
B、a[4]
C、a['d'-'c']
D、a['d'-c]
(  C  )
15、下列可作为c语言赋值语句的是______。
A、x=3,y=5;
B、a=b=6;
C、i--;
D、y=int(x)
(  A  )
16、一个c程序由若干个c函数组成,各个函数在文件中的书写位置为______。
A、任意
B、第一个函数必须是主函数,其他函数任意
C、必须完全按调用的顺序排列
D、其他函数必须在前,主函数必须在最后
(  B  )
17、设int a=10,b= 11,c=12; 表达式( a + b) < c & &b==c的值是________。
A、2
B、0
C、-2
D、1
(  A  )
18、如下陈述中正确的是________。
A、串“ABC”和串“ABC”不相等
B、串的长度必须大于零
C、串中元素只能是字母
D、空串就是空格串
(  D  )
19、若已定义: int a[]= { 0,1,2,3,4,5,6,7,8,9 },*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是________。
A、a[p-a]
B、*(&
C、p
D、a[10]
(  D  )
20、给定下面的代码: int i=1,j=10;
do
{
if(i++>--j) continue;
}
while(i<5) 执行完之后,i与j的值分别是多少 ( )
A、i=6,j=5
B、i=5,j=5
C、i=6,j=4
D、i=5,j=6
(  D  )
21、表达式x+1>x是________。
A、算术表达式
B、非法表达式
C、字符串表达式
D、关系表达式
(  D  )
22、下列叙述中正确的是________。
A、break语句只能用于switch语句
B、在switch语句中必须使用default
C、break语句必须与switch语句中的case配对使用
D、在switch语句中,不一定使用break语句
(  A  )
23、下列属于条件运算符的是________。
A、:
B、&&
C、>>
D、+
(  D  )
24、采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是________。
A、递归次数与初始数据的排列次序无关
B、每次划分后,先处理较长的分区可以减少递归次数
C、每次划分后,先处理较短的分区可以减少递归次数
D、递归次数与每次划分后得到的分区处理顺序无关
(  D  )
25、vb的3种结构化程序设计的3种基本结构是________。
A、选择结构、过程结构、顺序结构
B、递归结构、选择结构、循环结构
C、过程结构、转向结构、递归结构
D、选择结构、顺序结构、循环结构
(  C  )
26、以下选项中属于c语言数据类型的是________。
A、复数型
B、逻辑型
C、双精度型
D、集合型
(  C  )
27、在标准ascⅱ编码表中,数字码、小写英文字母和大写英文字母的前后次序是________。
A、数字、小写英文字母、大写英文亨母
B、小写英文字母、大写英文字母、数字
C、数字、大写英文字母、小写英文字母
D、大写英文字母、小写英文字母、数字
(  B  )
28、执行以下代码,输出结果是________ int x=5,y=7,u=9,v=6; printf("%d",x>y?x+2:u>v?u-3:v+2);
A、8
B、6
C、7
D、true
(  D  )
29、合法的数组定义是________。
A、int a[ ]="string";
B、int a[5]=0,1,2,3,4,5;
C、char a="string";
D、char a=0,1,2,3,4,5;
(  A  )
30、有以下程序
struct s
{
int n;
int a[20];
};
void f(int *a,int n)
{
int i;
for(i=0;i<n-1;i++)a[i]+=i;
}
main()
{
int i;
struct s s={10,{ 2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0; i<s.n; i++)printf("%d,",s.a[i]);
}
程序运行后的输出结果是________。
A、2,4,3,9,12,12,11,11,18,9,
B、3,4,2,7,9,8,6,5,11,10,
C、2,3,1,6,8,7,5,4,10,9,
D、1,2,3,6,8,7,5,4,10,9,
(  C  )
31、若有定义: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");
}
(  C  )
32、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=1,b=3;
if((++a<0)&&!(b--<=0)) printf("%d,%d\n",a,b);
else printf("%d,%d\n",b,a);
}
A、2,2
B、1,3
C、3,2
D、3,1
(  D  )
33、分析下列程序,其最终执行结果是______。
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
(  B  )
34、有以下程序
#include<stdio.h>
main()
{
char s[]="012xy\08s34f4w2";
int i, n=0;
for(i=0; s[i]!=0; i++) if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n", n);
}
程序运行后的输出结果是______。
A、0
B、3
C、7
D、8
(  B  )
35、当全局变量与局部变量重名时,那么在调用时( )
A、局部变量会被屏蔽
B、全局变量会被屏蔽
C、都不会调用,系统会报错
D、会调用两次,先调用局部变量,再调用全局变量
(  B  )
36、关于fgets()函数,下列描述中正确的是________。
A、从文件fp中读取长度为n的字符串存入str指向的内存
B、从文件fp中读取长度不超过n-1的字符串存入str指向的内存
C、从文件fp中读取n个字符存入str指向的内存
D、从str读取至多n个字符到文件fp中
(  D  )
37、下列关于表达式的描述中,错误的是________。
A、常量和变量都是表达式
B、运算符类型对应表达式的类型
C、每一个表达式都有自己的值
D、表达式必须以分号结尾
(  A  )
38、程序中若有如下说明和定义语句char fun(char *);
main()
{
char *s="one",a[5]={0},(*f1)()=fun,ch;
......
}
以下选项中对函数fun的正确调用语句是______。
A、(*f1)(a);
B、*f1(*s);
C、fun(&a);
D、ch=*f1(s);
(  A  )
39、c语言中,错误的int类型的常数是________。
A、1E5
B、0
C、037
D、0xaf
(  B  )
40、执行循环语句后,i变量的值是________ i=4; while(i--); printf("%d",i);
A、0
B、-1
C、1
D、有错误
(  A  )
41、以下关于逻辑运算符两侧运算对象的叙述中正确的是________。
A、可以是任意合法的表达式
B、只能是整数 0 或非 0 整数
C、可以是结构体类型的数据
D、只能是整数 0 或 1
(  A  )
42、c语言中,形参缺省的存储类别是________。
A、auto(自动)
B、static(静态)
C、register(寄存器)
D、extern(外部)
(  A  )
43、对于函数声明 void fun(int a[1],int*b); 以下叙述中正确的是________。
A、函数参数A,b 都是指针变量
B、有语法错误,数组 a 的大小不能为 1
C、调用该函数后,实参变量所指向的内存单元的值肯定不会受影响
D、调用该函数时,a 的值是从对应实参复制过来的,b 的值是对应实参变量的地址
(  B  )
44、下列程序的输出结果是________。
main()
{
char c1=97,c2=98;
printf("%d %c",c1,c2);
}
A、97 98
B、97 b
C、a 98
D、a b
(  C  )
45、以下程序段的执行结果是________。 double x; x=218.82631; printf("%-6.2e\n",x);
A、输出格式描述符的域宽不够,不能输出
B、输出为21.38e+01
C、输出为2.2e+02
D、输出为-2.14e2
(  C  )
46、与实际参数为实型数组名相对应的形式参数不可以定义为________。
A、float a[];
B、float *a;
C、float a;
D、float (*a)[3];
(  C  )
47、static struct
{
int a1;
float a2;
char a3;
}
a[10]={1,3.5,'a'};
说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存 储方式,其中被初始化的下标变量是________。
A、a[1]
B、a[-1]
C、a[0]
D、a[10]
(  C  )
48、下列各定义数组的语句中不正确的是________。
A、int a[1][3];
B、int x[2][2]={1,2,3,4};
C、int x[2][ ]={1,2,4,6};
D、int m[ ][3]={ 1,2,3,4,5};
(  C  )
49、C语言源程序文件经过编译程序编译连接之后生成一个后缀为( )的可执行文件
A、c
B、obj
C、exe
D、bas
(  C  )
50、以下程序段中,能够正确地执行循环的是()。
A、for(i=1;i>10;i++)
B、static int a;while(a)
C、int s=6; do s-=2; while(s);
D、int s=6;m:if(s<100)exit(0);else s-=2;goto m: