集美大学2022年计算机C语言专升本

本试卷为集美大学2022年计算机C语言专升本,题目包括:单项选择题,填空题,编程题。

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

计算机C语言专升本

一、单项选择题 (共20题,每题2分,共计40分)

(  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
(  A  )
2、c语言结构体类型变量在程序执行期间,________。
A、所有成员一直驻留在内存中
B、没有成员驻留在内存中
C、部分成员驻留在内存中
D、只有一个成员驻留在内存中
(  B  )
3、下面的程序
main()
{
int x=3;
do
{
printf("%d\n",x-=2);
}
while(!(--x));
}
A、输出的是1
B、输出的是1和-2
C、输出的是3和0
D、是死循环
(  C  )
4、下列程序的输出结果是________。
main( )
{
int i, j, m=0, n=0;
for(i=0; i<2; i++) for(j=0; j<2; j++) if (j>=i) m=1;
n++;
printf("%d \n",n);
}
A、4
B、2
C、1
D、0
(  A  )
5、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值:
A、0
B、1
C、12
D、6
(  C  )
6、设有以下说明语句:
typedef struct stu
{
int a;
float b;
} stutype;
则下面叙述中错误的是________。
A、struct是结构类型的关键字
B、struct stu是用户定义的结构类型
C、a和b都是结构成员名
D、stutype是用户定义的结构体变量名
(  D  )
7、下面程序输出的结果是 __________.
#include <stdio.h>
void main( )
{
int i,j,x=0;
static int a[6]={1,2,3,4,5,6};
for(i=0,j=1;i<5;++i,j++) x+=a[i]*a[j];
printf("%d\n",x);
}
A、数组 a 中首尾的对应元素的乘积
B、数组 a 中首尾的对应元素的乘积之和
C、数组 a 中相邻各元素的乘积
D、数组 a 中相邻各元素的乘积之和
(  A  )
8、设有定义 double a[10],*s=a; 以下能够代表数组元素a[3]的是______。
A、*(s+3)
B、(*s)[3]
C、*s[3]
D、*s+3
(  C  )
9、表示存储器的容量时,1mb的准确含义是________。
A、1米
B、1 024字节
C、1 024K字
D、1.000字节
(  C  )
10、下面程序的运行结果是
#include<stdio.h>
main()
{
int a=28,b;
char s[10],*p;
p=s;
do
{
b=a%16;
if(b<10) *p=b+48;
else *p=b+55;
p++;
a=a/5;
}
while(a>0);
*p='\0';
puts(s);
}
A、10
B、C2
C、C51
D、\0
(  D  )
11、若有以下说明和定义:
union dt {
int a;
char b;
double c;
} data;
以下叙述中错误的是________。
A、data的每个成员起始地址都相同
B、变量data所占内存字节数与成员c所占字节数相等
C、程序段:data.a=5; printf("%f\n", data.c);输出结果为5.000000
D、data可以作为函数的实参
(  B  )
12、有以下程序
#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
(  C  )
13、执行语句scanf("%d,%d",&m,&n); 使m和n的值分别为1和2,正确输入是________。
A、1
B、1 2
C、1,2
D、12
(  B  )
14、下列运算符中,优先级最低的是________。
A、*
B、=
C、==
D、%
(  D  )
15、有以下程序:则输出结果是________。
main()
{
int i,s=1;
for(i=1;i<50;i++)if(!(i%5)&&!(!i%3)) s+=i;
printf("%d\n",s);
}
A、409
B、277
C、1
D、91
(  D  )
16、有以下程序
void fun(char s[][10],int n)
{
char t;int i,j;
for(i=0;i<N-1;I++)
for(j=i+1,j<N;J++)}
/*比较字符串的首字符大小,并交换字符
串的首字符*/
if(s[i][0])>s[j][0]){
t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;
}
main()
{
char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};
fun(ss,5);printf(”%s,%s”,ss[0],ss[4]);
}
程序运行结果是________。
A、xy,aaaacc
B、aaaacc,xy
C、XCC,aabcc
D、ace,xabcc
(  B  )
17、关于c语言,下列说法正确的是________。
A、程序就是算法
B、一个变量只能定义为一种数据类型
C、一个变量只能存储一个字符
D、若a和b类型相间,执行a=b;后,b中数值将丢失
(  B  )
18、c语言中数组下标的下限是________。
A、1
B、0
C、视具体情况而定
D、无固定下限
(  B  )
19、c语言中,定义结构体的保留字是________。
A、union
B、struct
C、enum
D、typedef
(  A  )
20、以下不是无限循环的语句为________。
A、for(y=0,x=1;x>++y;x=i++) i=x;
B、for(;;x++=i);
C、while1){x++;}
D、for(i=10;;i--) sum+=i;

二、填空题 (共10题,每题2分,共计20分)

1、int x=6, y=7;
printf("%d,",x++);
printf("%d\n",++y);
程序的输出结果是________。
2、表达式10/3*9%10/2的值是________。
3、设有如下宏定义
#define MYSWAP(z,x,y)
{
z=x;
x=y;
y=z;
}
以下程序段通过宏调用实现变量a、b内容交换,请填空。 float a=5,b=16,c;
MYSWAP( ________ ,a,b);
4、若有定义:int a=3; 表达式a/2.0+'b'-'a'的值是【1】。
5、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是________。 我的答案: break
6、已知char str[]="happy!",则strlen(str)的值为________。
7、执行以下语句段
int i;
int fun(int x)
{
return ((x>0)?fun(x-1)+fun(x-2):1);
}
i=fun(3);
i的值为________。
8、c语言中文件操作结束节后,必须关闭文件。而且关闭文件是通过调用________函数来实现。
9、下面程序的运行结果是________。
#include<stdio.h>
main()
{
int i,t,sum=0;
for(t=i=1;i<=10;)
{
sum+=t;
++i;
if(i%3==0) t=-i;
else t=i;
}
printf("sum=%d",sum);
}
10、下面程序可求出矩阵两条对角线上的元素之和。请分析程序填空。
main()
{
int a[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;
for(i=0;i<3;i++)for(j=0;j<3;j++)
if(i==j) sum1+=a[i][j];
for(i=0;i<3;i++)
for( 【1】________;【2】________;j--)
if(i+j==2) sum2+=a[i][j];
printf("sum1=%d,sum2=%d\n",sum1,sum2);
}

三、编程题 (共3题,每题0分,共计40分)

1、编写程序:从键盘上输入若干个整数,并将这些整数存放在数组x中,统计计算出平均成绩,当输入负数时结束()例如,如果从键盘上输入:1 2 3 4 -8,则程序的输出应为: output : ave=2.50
2、编写函数
void del(char *s,char c),其功能是在 s 所指字符串中删除与变量 c 相同的 字符,并设计主函数实现: (1)从键盘输入字符串和指定被删除的字符;
(2)调用 del()函数实现删除操作;
(3)输出删除后的字符串。 说明:不允许使用除 gets和 puts之外的任何字符串处理库函数。
3、编程序建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入当输入数据为-1时表示输入结束,使用结构体实现。