河南工业大学2023年C语言程序设计期末试题

本试卷为河南工业大学2023年C语言程序设计期末试题,题目包括:单项选择题。

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

本卷包括如下题型:

一、单项选择题

C语言程序设计期末试题

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

(  A  )
1、与 y=(x>0?1:x<0?-1:0); 的功能相同的if语句是________。
A、if (x>0) y=1;
else if(x<0)y=-1;
else y=0;
B、if(x)
if(x>0)y=1;
else if(x<0)y=-1;
else y=0;
C、y=-1
if(x)
if(x>0)y=1;
else if(x==0)y=0;
else y=-1;
D、y=0;
if(x>=0)
if(x>0)y=1;
else y=-1;
(  A  )
2、下列叙述中正确的是________。
A、只能在循环体内和switch语句体内使用break语句
B、continue语句的作用是结束整个循环的执行
C、在循环体内使用break语句或continue语句的作用相同
D、从多层循环嵌套中退出时,只能使用got0语句
(  C  )
3、以下叙述中正确的是________。
A、在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误地表示
B、C程序由主函数组成
C、C程序由若干函数组成
D、C程序中只允许包含一个函数
(  A  )
4、下列程序中c的二进制值是________。 char a=2,b=4,c;c=a-b>>2;
A、00000011
B、00010100
C、000111OO
D、00011000
(  D  )
5、读出以下语句的输出结果是________。 int x=10,y=10;printf("%d %d\n",x--,--y);
A、10 10
B、9 9
C、9 10
D、10 9
(  D  )
6、以下选项中能表示合法常量的是________。
A、整数:1,200
B、实数:1.5E2.0
C、字符斜杠:"\"
D、字符串:"\007"
(  D  )
7、以下能正确定义字符串的语句是________。
A、char str[]={′\064′};
B、char str="kx43";
C、char str=";
D、char str[]="\0";
(  B  )
8、有以下程序
struct s
{
int x,y;
}
data[2]={ 10,100,20,200 };
main()
{
struct s *p=data;
printf("%d\n",++(p->x));
}
程序运行后的输出结果是________。
A、10
B、11
C、20
D、21
(  A  )
9、可在c程序中用作用户标识符的一组标识符是________。
A、and
2007
B、Date
y-m-d
C、Hi
Dr. Tom
D、case
Bigl
(  A  )
10、若有以下的定义: int a[ ]={ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 }, *p=a; 则值为 3 的表式是______。
A、p+=2 , * ( p++ )
B、p+=2 , *++p
C、p+=3 , *p++
D、p+=2 , ++*p
(  B  )
11、下列程序执行后的输出结果是 __________.
#include <stdio.h>
void main( )
{
int x,y=1,z;
if ((z=y)<0) x=4;
else if (y==0) x=5;
else x=6;
printf("%d,%d\n",x,y);
}
A、4,1
B、6, 1
C、5,0
D、出错信息
(  C  )
12、下面程序段的输出结果是 __________.
x=3;
do
{
y=x--;
if (!y)
{
printf("*");
continue;
}
printf("#");
}
while(x=2);
A、##
B、##*
C、死循环
D、输出错误信息
(  C  )
13、若有以下说明 : char s1[ ]={"tree"
} ,s2[]={"flower"};, 则以下对数组元素或数组的输出语句中 , 正确的是 _______ .
A、printf("%s%s",s1[5],s2[7]);
B、printf("%c%c",s1,s2);
C、puts(s1);puts(s2);
D、puts(s1,s2);
(  B  )
14、若有说明int a[3][4]; 则a数组元素的非法引用是________。
A、123
B、2.5
C、-12
D、1563
(  A  )
15、在c语言中,以下说法不正确的是________。
A、在C程序中,整数和实数都能被准确无误地表示出来
B、在C程序中,任何一个变量名都代表存储器中的一个位置
C、静态变量的生存期与整个程序的运行期相同
D、C语言中,任何变量都必须先声明才能进行引用
(  A  )
16、若i、j已定义为int型,则以下程序段中内循环的总的执行次数是________。 for(i=5;i>0;i--) for(j=0;j<4;j++)…
A、20
B、24
C、25
D、30
(  D  )
17、已知3个字符为:a、z和8,按它们的ascii码值升序排序,结果是________。
A、8,a,Z
B、a,8,Z
C、a,Z,8
D、8,Z,a
(  D  )
18、设有以下定义: int a[3][3]= { 1,2,3,4,5,6,7,8,9 }; int(*ptr)[3]=a; 则下列能正确表示数组元素a[1][2]的表达式是______。
A、*((*ptr+1)[2])
B、a[2][3]
C、(*ptr+1)+2
D、*(*(a+1)+2)
(  D  )
19、执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为______。 int a[]= { 5,4,3,2,1 },*p[]= { a+3,a+2,a+1,a },**q=p;
A、8
B、7
C、6
D、5
(  A  )
20、下列描述说明正确的是________。
A、定义结构体时,它的每个成员的数据类型可以不同
B、不同结构体的成员名不能相同
C、结构体定义时,其成员的数据类型不能是结构体本身
D、结构体定义时各成员项之间可用分号也可用逗号隔开
(  B  )
21、下列对变量的引用中,错误的是________。
A、int a;int &p=a;
B、char a;char &p=a;
C、int a;int &p;p=a;
D、float a;float &p=a;
(  B  )
22、在以下各标识符中,合法的用户标识符是________。
A、001
B、table__1
C、0__t
D、k%
(  A  )
23、下列叙述中正确的是________。
A、程序执行的效率与数据的存储结构密切相关
B、程序执行的效率只取决于程序的控制结构
C、程序执行的效率只取决于所处理的数据量
D、以上三种说法都不对
(  B  )
24、递归算法的执行过程一般来说可先后分成______和______两个阶段。
A、试探
B、递推
C、枚举
D、分析
(  B  )
25、以下不正确的定义语句是________。
A、double x[5]=1.0,2.0,3.0,4.0,5.0;
B、int y[5]=0,1,2,3,4,5;
C、char c1[]='1','2','3','4','5';
D、char c2[]='a','b','c';
(  A  )
26、c语言的基本数据类型包括________。
A、字符型和数值型
B、字符型和逻辑型
C、整型和实型
D、指针型和数据型
(  C  )
27、下列的程序用来输出两个字符串前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  )
28、有以下程序
main()
{
int i;
for(i=1;i<=40;i++)
{
if(i++%5==0) if(++i%8==0) pfintf("%d",i);
}
printf("\n");
}
执行后的输出结果是________。
A、5
B、24
C、32
D、40
(  B  )
29、下列程序的输出结果是
#include "stdio.h"
#define N 3
#define M 3
void fun(int a[M][N]) {
printf("%d\n",*(a[1]+2));
}
main()
{
int a[M][N];
int i,j;
for(i=0;i<M;i++) for(j=0;j<N;j++) a[i][j]=i+j-(i-j);
fun(a);
}
A、3
B、4
C、5
D、6
(  A  )
30、设有说明语句如下: static char str[]="beijing"; 若执行下列输出语句: printf("%d\n",strlen(strcpy(str,"china")));
则输出结果为________。
A、5
B、7
C、12
D、14
(  B  )
31、以下叙述中正确的是________。
A、调用printf函数时,必须要有输出项
B、使用putchar函数时,必须在之前包含头文件stdio.h
C、在C语言中,整数可以用十二进制、八进制或十六进制的形式输出
D、调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCⅡ码
(  A  )
32、若有定义:char c; double d; 程序运行时输入: 1 2<回车>,能把字符 1 输入给变量 c数值 2 输入给变量 d 的输入语句是________。
A、scanf("%c%lf", &c,&d);
B、scanf("%d%lf", &c,&d);
C、scanf("%c%f", &c,&d);
D、scanf("%d%f", &c,&d);
(  B  )
33、若定义a=3,b=4,执行printf("%d, %d",(a,b),(b,a)); 的输出结果为________。
A、3,4
B、4,3
C、3,3
D、4,4
(  C  )
34、定义一个字符型变量,下列选项中正确的是________。
A、char c = '97'
B、char c = "97"
C、char c = 97
D、char c = c
(  B  )
35、宏定义用于将一个标识符定义为一个
A、常量
B、字符串
C、整数
D、长整数
(  B  )
36、以下程序的结果是______。int a ,b;
void sun()
{
a=100;
b=200;
}
main()
{
int a=6,b=8;
sun();
printf("%d %d\n",a,b);
}
A、100 200
B、6 8
C、200 100
D、8 6
(  A  )
37、有以下程序
main()
{
int i=0,s=0;
do
{
if(i%2)
{
i++;
continue;
}
i++;
s+=i;
}
while(i<7);
printf("%d\n",s);
}
执行后输出的结果是______。
A、16
B、12
C、28
D、21
(  C  )
38、设 float f[10]; 则f数组中下标最大的元素的正确表示为________。
A、f[10]
B、f[0]
C、f[9]
D、f(9)
(  B  )
39、无符号二进制数后加上一个0,形成的数是原来的几倍?
A、1
B、2
C、1/2
D、4
(  A  )
40、a、b分别是整数6、-2,那么a对b求余与b对a求余的值分别为
A、0、-2
B、3、-2
C、3、2
D、0、2
(  C  )
41、下面不是c 语言整形常数的是________。
A、02
B、0
C、038
D、0Xal
(  A  )
42、以下表达式中,其值不等于数值 3 的是________。
A、0+'3'
B、'D'-'A'
C、'3'-'0'
D、'd'-a'
(  D  )
43、double x; scanf("%lf",&x); 不可以赋值给x变量的常量是________。
A、123
B、100000
C、A'
D、"abc"
(  C  )
44、char *s1="hello",*s2; s2=s1; 则________。
A、s2和s1指向不确定的内存单元
B、不能访问"hello"
C、puts(s1);与puts(s2);结果相同
D、s1不能再指向其它单元
(  A  )
45、下列字符数组长度为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  )
46、下列数据中属于"字符串常量"的是________。
A、ABC
B、"ABC"
C、'ABC'
D、'A'
(  C  )
47、以下程序的输出结果是________。
main() 
{
int a=100;
printf("%d\n",++a);
 
}
A、0
B、100
C、101
D、无法确定
(  C  )
48、判断两个字符串是否相等,正确的表达方式是
A、s1==s2
B、s1=s2
C、strcmp(s1,s2)==0
D、strcmp(s1,s2)=0
(  C  )
49、以下叙述中正确的是 ()。
A、C语言比其他语言高级
B、C语言可以不用编译就能被计算机识别执行
C、C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D、C语言出现的最晚,具有其他语言的一切优点
(  C  )
50、以下叙述中错误的是________。
A、C语句必须以分号结束
B、复合语句在语法上被看作一条语句
C、空语句出现在任何位置都不会影响程序运行
D、赋值表达式末尾加分号就构成赋值语句