海南医学院2023年计算机C语言专升本

本试卷为海南医学院2023年计算机C语言专升本,题目包括:单项选择题,填空题,编程题。

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

计算机C语言专升本

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

(  B  )
1、以下叙述中正确的是________。
A、预处理命令行必须位于c源程序的起始位置
B、在c语言中,预处理命令行都以“#”开头
C、每个c程序必须在开头包含预处理命令行:#include
D、C语言的预处理不能实现宏定义和条件编译的功能
(  B  )
2、以下选项中不正确的实型常量是________。
A、2.607E-1
B、0.8103e 2
C、-77.77
D、456e-2
(  B  )
3、下面结构体的定义语句中,错误的是________。
A、struct ord {
int x;int y;int z;};struct ord a;
B、struct ord {
int x;int y;int z;} struct ord a;
C、struct ord {
int x;int y;int z;} n;
D、struct {
int x;int y;int z;} a;
(  C  )
4、以下程序的运行结果是:
#include<stdio_h>
void sub(int s[] , int y)
{
static int t=3 ;
y=s[t] ;
t-- ;
}
main()
{
int a[]={1,2 , 3 , 4}, i , x=0 ;
for(i=0 ; i<4 ; i++)
{
sub(a,x) ;
printf( "% d ", x) ;
}
printf( "\ n " ) ;
}
A、1234
B、432l
C、0000
D、4444
(  D  )
5、已知 short int 类型变量占用两个字节 , 若有定义 : short int x[10]={ 0,2,4 }; 则数组 x 在内存中所占字节数是 __________.
A、3
B、6
C、10
D、20
(  A  )
6、对于 c 语言的函数,下列叙述中正确的是 ______ __.
A、函数的定义不能嵌套,但函数调用可以嵌套
B、函数的定义可以嵌套,但函数调用不能嵌套
C、函数的定义和调用都不能嵌套
D、函数的定义和调用都可以嵌套
(  B  )
7、以下合法的赋值语句是______。
A、X=Y=100
B、D-;
C、X+Y;
D、C=int(A+B)
(  B  )
8、在32位的计算机中,一个char型数据所占的内存长度的字节是________。
A、4
B、1
C、2
D、8
(  D  )
9、在c语言程序中
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义和调用均可以嵌套
C、函数的定义和调用均不可以嵌套
D、函数的定义不可以嵌套,但函数的调用可以嵌套
(  C  )
10、若有下面的程序片段:
int[12]={0},*p[3],**pp,i;
for(i=0;i<3;i) p[i]=&a[i*4];
pp=p
则对数组元素的错误引用是________。
A、pp[0][1]
B、a[10]
C、p[3][1]
D、*(*(p+2)+2)
(  B  )
11、下面程序的运行结果是________。
#include <stdio.h>
main() {
int a=1,b=10;
do
{
b-=a;
a++;
}
while(b--<0);
printf("a=%d,b=%d\n",a,b);
}
A、a=3,b=11
B、a=2,b=8
C、a=1,b=-1
D、a=4,b=9
(  B  )
12、宏定义用于将一个标识符定义为一个
A、常量
B、字符串
C、整数
D、长整数
(  C  )
13、阅读下列程序段: char s[18] = "a book!"; printf("%.4s\n", s);
其输出结果为________。
A、a book!
B、a book
C、a bo
D、a
(  A  )
14、有以下程序
main()
{
int a=15,b=21,m=0;
switch(a%3)
{
case 0:m++;
break;
case 1:m++;
switch(b%2)
{
default:m++;
case 0:m++;
break;
}
}
printf("%d\n",m);
}
程序运行后的输出结果是______。
A、1
B、2
C、3
D、4
(  A  )
15、有以下程序
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,
(  D  )
16、如下程序,输入错误的为:
void main()
{
int a;
int b;
scanf("%d%d",&a,&b);
printf("%d %d",a,b);
}
A、1【空格】2【回车】
B、1【 Tab】2【回车】
C、1【回车】2【回车】
D、1【分号】2【回车】
(  D  )
17、以下说法错误的是________。
A、C 语言标识符中可以有多个字母数字和下划线字符
B、C 语言标识符中下划线字符可以出现在任意位置
C、C 语言标识符不能全部由数字组成
D、C 语言标识符必须以字母开头
(  D  )
18、int i,j,a[2][3]; 按照数组a的元素在内存的排列次序,不能将数 1,2,3,4,5,6存入a数组的是________。
A、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;
B、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;
C、for(i=0;i<6;i++)a[i/3][i%3]=i+1;
D、for(i=1;i<=6;i++)a[i][i]=i;
(  C  )
19、定义结构体的关键字是________。
A、union
B、enum
C、struct
D、typedef
(  B  )
20、c语言的switch语句中case后____
A、只能为常量
B、只能为常量或常量表达式
C、可为常量或表达式或有确定值的变量及表达式
D、可为任何量或表达式

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

1、c程序中的变量按其定义位置及作用域可分为________两种。
2、设int a; float f; double i; 则表达式10+’a’+i*f值的数据类型是________ 。
3、以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
void sstrcpy(char *s,char *t)
{
while(*s++= ________);
}
main( )
{
char str1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
4、若有定义:int a=3; 表达式a/2.0+'b'-'a'的值是【1】。
5、在c语言中,如果采用printf函数将整个字符串一次输出,那么对应的格式控制符为"( )"。
6、以下程序的输出结果是________。#inlcude <stdio.h>
main()
{
int m=68;
putchar(m+30);
}
7、下面程序段中循环体的执行次数是________。
a=10;
b=0;
do
{
b+=2;
a-=2+b;
}
while(a>=0);
8、从文件读入一行,读取字符包括空格,使用函数________。
9、设有以下程序:
main()
{
int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{
n1=n2 ;
n2=n2/10;
printf("%d ",n1);
}
}
程序运行后,如果从键盘上输入1298;
则输出结果为________。
10、设y为int型变量,请写出描述“y是奇数”的表达式______。

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

1、编写程序:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
2、编写程序:利用指针方法, 输入3个数a,b,c,按大小顺序输出。
3、输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。
输入格式:
输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。
输出格式:
按照年龄从大到小输出朋友的信息,格式同输出。
输入样例:
3
zhang 19850403 13912345678
wang 19821020 +86-0571-88018448
qian 19840619 13609876543
输出样例:
wang 19821020 +86-0571-88018448
qian 19840619 13609876543
zhang 19850403 13912345678