长春大学2023年C语言专升本练习

本试卷为长春大学2023年C语言专升本练习,题目包括:单项选择题。

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

本卷包括如下题型:

一、单项选择题

C语言专升本练习

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

(  B  )
1、当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为
if(a<b)
if(c<d) x=1;
else
if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
A、1
B、2
C、3
D、6
(  D  )
2、以下叙述中错误的是________。
A、C语言的可执行程序是由一系列机器指令构成的
B、用C语言编写的源程序不能直接在计算机上运行
C、通过编译得到的二进制目标程序需要连接才可以运行
D、在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
(  D  )
3、c语言中,下列不合法的字符常量是________。
A、'\xff'
B、'\65'
C、'&'
D、'\028'
(  A  )
4、下列函数的类型是________。 fun(double x)
{
float y;
y=3*x-4;
return y;
}
A、int
B、不确定
C、void
D、float
(  B  )
5、以下能正确定义一维数组的选项是________。
A、int a[5]={
0,1,2,3,4,5};
B、char a[]={
1,2,3,4,5,6};
C、char a={'s','d','k'};
D、int a[5]="0123";
(  C  )
6、以下for循环是________。 for(x=0,y=0;(y!=123) && (x<4);x++)
A、无限循环
B、循环次数不定
C、执行4次
D、执行3次
(  A  )
7、下列四组常数中,均是合法整型常量的一组是________。
A、160 0xffff 011
B、-0xcdf 01a 0xe
C、-01 986,012 0668
D、-0x48a 2e5 0x
(  A  )
8、以下4组用户定义标识符中,全部合法的一组是________。
A、_main
enclude
sin
B、If
-max
turbo
C、txt
REAL
3COM
D、int
k_2
_001
(  C  )
9、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是________。
A、char s[10]=”abcdefg”;
B、char t[]=”abcdefg”,*s=t;
C、char s[10];s=”abcdefg”;
D、char s[10];strcpy(s,”abcdefg”);
(  A  )
10、有定义语句:int x, y; 若要通过scanf("%d,%d",&x,&y); 语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是________。
A、11 12<回车>
B、11, 12<回车>
C、11,12<回车>
D、11,<回车>
12<回车>
(  B  )
11、以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址
#include <stdio.h>
#include <string.h>
char *scmp(char *s1, char *s2)
{
if(strcmp(s1,s2)<0) return(s1);
else return(s2);
}
main()
{
int i;
char string[20], str[3][20];
for(i=0;i<3;i++) gets(str[i]);
strcpy(string,scmp(str[0],str[1]));
/*库函数strcpy对字符串进行复制*/
strcpy(string,scmp(string,str[2]));
printf("%s\n",string);
}
若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为
A、abcd
B、abba
C、abc
D、abca
(  A  )
12、若有说明语句:int a,b,c,*d=&c; 则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是________。
A、scanf("%d%d%d",&a,&b,d);
B、scanf("%d%d%d",&a,&b,&d);
C、scanf("%d%d%d",a,b,d);
D、scanf("%d%d%d",a,b,*d);
(  A  )
13、是构成c语言程序的基本单位。
A、函数
B、过程
C、子程序
D、子例程
(  D  )
14、分析以下程序 , 下列说法正确的是______。
main()
{
int x=5,a=0,b=0;
if(x=a+b) printf("* * * *\n");
else printf("# # # #\n");
}
A、有语法错,不能通过编译
B、通过编译,但不能连接
C、输出 * * * *
D、输出 # # # #
(  D  )
15、程序段如下:则以下说法中正确的是:
int k=5;
do
{
k--;
}
while(k<=0);
A、循环执行 5 次
B、循环是无限循环
C、循环体语句一次也不执行
D、循环体语句执行一次
(  D  )
16、若 d 为 double 型变量 , 则表达式 d=1,d+5,d++ 的值是 _________.
A、1
B、6.0
C、2.0
D、1.0
(  A  )
17、如有定义语句 int a[]={ 1,8,2,8,3,8,4,8,5,8 }; 则数组 a 的大小是 __________.
A、10
B、11
C、8
D、不定
(  A  )
18、c 语言规定,除主函数外,程序中各函数之间 ______.
A、既允许直接递归调用也允许间接递归调用
B、不允许直接递归调用也不允许间接递归调用
C、允许直接递归调用不允许间接递归调用
D、不允许直接递归调用允许间接递归调用
(  A  )
19、按照标识符的要求,下列选项中,( )符号不能组成标识符。
A、连接符
B、下划线
C、大小写字母
D、数字字符
(  C  )
20、在c语言中,以下一组运算符中,优先级最高的运算符是______。
A、<=
B、=
C、%
D、&&
(  A  )
21、以下选项中,不合法的整型常数是________。
A、32768
B、-56
C、03
D、0Xaf
(  A  )
22、数组a[1..5,1..6]的每个元素占5个单元,将其按行优先顺序存储在起始地址为1000的连续的内存单元中,则元素a[5,5]的地址为 (15) 。
A、1140
B、1145
C、1120
D、1125
(  C  )
23、若a的值为3时,下列程序段被执行后,c的值是________。
int c = 1;
if (a>0) if (a>3) c = 2;
else c = 3;
else c = 4;
A、1
B、2
C、3
D、4
(  A  )
24、下列对字符数组进行初始化的语句中,______ 是正确的。
A、char s 1[]=“abcd”;
B、char s2 [3]=”xyz”;
C、char s 3[] [3]={‘a’,‘x’,‘y’}
D、char s3 [][3]={“xyz”,“mnp”};
(  D  )
25、下列字符串中,正确的c标识符是________。
A、foo-1
B、2b
C、new
D、256
(  C  )
26、下列运算符中,( )是布尔逻辑运算符。
A、++
B、<<
C、‖
D、&
(  A  )
27、if语句的基本形式是:if(表达式)语句,以下关于"表达式"值的叙述中正确的是______。
A、可以是任意合法的数值
B、必须是整数值
C、必须是正数
D、必须是逻辑值
(  B  )
28、下列程序段的运行结果是________。
#include<stdio.h>
void main()
{
char str[]="abc",*p=str;
printf("%d\n",* (p+3));
}
A、67
B、0
C、字符'C'的地址
D、字符'C'
(  C  )
29、下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是________。
#include<stdio.h>
main()
{
char sl[]="chinese",s2[]="japnese";
int i;
for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++) if(s1[i]=s2[i]&&i<7) ____________________;
}
A、putchar(s2;putchar(
B、puts(s1,
C、printf("%c%d\n",s2,
D、printf("%c",s1);printf("%d\n",
(  C  )
30、下面程序的运行结果是
#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  )
31、char型常量在内存中存放的是________。
A、二进制代码值
B、十进制代码值
C、十六进制代码值
D、ASCⅡ代码值
(  A  )
32、有以下程序
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  )
33、请读程序:
#include <stdio.h>
func(int a, int b) {
int c;
c=a+b;
return c;
}
main()
{
int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}
上面程序的输出结果是________。
A、11
B、20
C、21
D、31
(  D  )
34、以下程序结果为:______。
void add( )
{
static int y=1;
y++;
printf("%d",y);
}
main( )
{
int m;
for(m=0;m<4;m++)add( );
}
A、1234
B、2222
C、1111
D、2345
(  C  )
35、若有以下程序段int m=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
执行后输出结果是______。
A、0X0
B、0x0
C、0
D、0XABC
(  B  )
36、以下对局部变量描述错误的是________。
A、在函数内部定义的变量
B、在程序的全部执行过程中一直占用存储单元。
C、在main函数中定义的变量是局部变量
D、形式参数也是局部变量。
(  D  )
37、下面( )表达式的值为4。
A、11/3
B、11.0/3
C、(float)11/3
D、(int)(11/3+1)
(  B  )
38、若变量已正确定义:for(x=0,y=0;(y!=99&&x<4);x++) 则以上 for 循环()
A、执行 3 次
B、执行 4 次
C、执行无限次
D、执行次数不定
(  C  )
39、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10
void arrin(int x[N])
{
int i=0;
while(i<N)scanf("%d",______);
}
在下划线处应填入的是______。
A、x+i
B、&x[i+1]
C、&x[i++]
D、&x[++i]
(  B  )
40、下面选项中合法的字符常量是________。
A、"X"
B、'X'
C、'abc'
D、'\'
(  D  )
41、有以下程序
main()
{
int k=5,n=0;
while(k>0)
{
switch(k)
{
default : break;
case 1 : n+=k;
case 2 :
case 3 : n+=k;
}
k--;
}
printf("%d\n",n);
}
程序运行后的输出结果是________。
A、4
B、5
C、6
D、7
(  C  )
42、enum a
{
sum=9,mon=-1,tue
}
;
定义了________。
A、枚举变量
B、3个标识符
C、枚举数据类型
D、整数9和-1
(  C  )
43、c语言源程序文件经过c编译程序编译连接之后生成一个后缀为()的可执行文件
A、.c
B、.obj
C、.exe
D、.bas
(  A  )
44、c风格的注释* c 风格的注释,也称块注释或多行注释,以 ▁▁▁ 开始,以 ▁▁▁ 结束。
A、/* 和 */
B、{ 和 }
C、[ 和 ]
D、( 和 )
(  C  )
45、判断关键字* ▁▁▁▁▁ 不是关键字。
A、int
B、extern
C、break
D、main
(  D  )
46、以下对结构体变量stu1中成员age的非法引用是________。
struct student
{
char name[10];
int age ;
}
stu1 ,*p;
p=&stu1;
A、stu1.age
B、p->age
C、(*p).age
D、student.age
(  C  )
47、若使用一位数组名作为函数实参, 则以下正确的说法是________。
A、必须在主调函数中说明此数组的大小
B、实参数组类型与形参数组类型可以不匹配
C、在被调函数中,不需要考虑形参数组的大小
D、实参数组名与形参数组名必须一致
(  C  )
48、若有以下数组说明,则i=10;a[a[i]]元素数值是____。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A、10
B、9
C、6
D、5
(  C  )
49、C语言能正确处理的指数是()。
A、8.50E+42
B、e-32
C、1.23E+11
D、4.5e-5.6
(  A  )
50、以下叙述中正确的是()。
A、构成. C程序的基本单位是函数
B、可以在一个函数中定义另一个函数
C、main()函数必须放在其它函数之前
D、所有被调用的函数一定要在调用之前进行定义