河南工业大学2023年计算机C语言期末冲刺卷
本试卷为河南工业大学2023年计算机C语言期末冲刺卷,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
计算机C语言期末冲刺卷
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、能正确表示"当x的取值在[1,10]和[100,11o]范围内为真,否则为假"的表达式是________。
( C )
2、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
( B )
3、以下对二维数组a进行正确初始化的是________。
( D )
4、c语言语句一行写不下时,可以( )。
( A )
5、有以下程序
#include <studio.h>
#include <string.h>
struct a
{
int a;
char b[10];
double c;
};
void f(struct a t);
main()
{
struct a a={1001,"zhangda",1098.0};
f(a);
pringt("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct a t)
{
t.a=1002;
strcpy(t.b,"changrong");
t.c=1202.0;
}
程序运行后的输出结果是________。
( B )
6、设有以下说明语句
typedef struct
{
int n;
char ch[8];
}
per;
则下面叙述中正确的是________。
( D )
7、程序段如下:则以下说法中不正确的是: 。
#include <stdio.h>
main()
{
int k=2,;
while(k<7)
{
if(k%2)
{
k=k+3;
printf( " k=%d\n " ,k);
continue;
}
k=k+1;
printf( " k=%d\n " ,k);
}
}
( A )
8、若定义static int a[2][2]={1,2,3,4 },则a数组的各数组元素分别为______。
( B )
9、c语言中,int型数据在内存中的存储形式是________。
( D )
10、在c 语言程序中,在函数内部定义的变量称为________。
( D )
11、以下叙述不正确的是_____。
( A )
12、设有以下语句
typedef struct s
{
int g;
char h;
}
t;
则下面叙述中正确的是________。
( C )
13、下面程序的输出结果是
#include<stdio.h>
main()
{
int a[]=1,2,3,4,5,6,7,8,9,0,*p;
p=a;
printf("%d\n",*p+9);
}
( A )
14、以下不能将s所指字符串正确复制到t所指存储空间的是______。
( A )
15、当输入为"quert"时,下面程序的执行结果是
#include<stdio.h>
main()
{
char c;
c=getchar();
while(c!='') {
putchar(c);
c=getchar();
}
}
( B )
16、有如下程序
#define N 2
#define M N+1
#define NUM 2*M+1
main()
{
int i;
for(i=1;i<=NUM;i++) printf("%d\n"i)
}
该程序中的for循环执行的次数是______。
( D )
17、下列关于sizeof说法错误的是________。
( B )
18、以下程序的运行结果是________。
main( )
{
int a=5 ,p;
if(p=a!=0)printf( "n%"d,p);
elseprintf("%d\n",p+2);
}
( D )
19、若变量已正确定义,执行语句scanf("%d,%d,%d ",&k1,&k2,&k3);
时,___是正确的输入
( A )
20、以下程序的输出结果为________。
#include <stdio.h>
int main( )
{
int i=1,j=1;
printf("%d %d\n",i,j++);
}
二、填空题 (共10题,每题2分,共计20分)
1、表达式 2.8 + 3/4 =________。
2、c语言程序的基本单位是________。
3、有以下程序
#include<stdio.h>
int*f(int *p,int*q);
main() {
int m=1,n=2,*r=&m;
r=f(r,&n);
printf("%d\n",*r);
}
int*f(int *p, int*q) {
return(*p>*q) ? p : q;
}
程序运行后的输出结果是________。
4、字符读写函数( )是用于把一个字符写入磁盘文件。
5、在c语言中,可以用/*…*/对c程序中的任何部分作______。
6、执行下列的程序段后,正确的结果是_____________。
int i=5;
while( i = 1)i -- ;
printf("%d", i );
7、写一个表达式表示n既能被3整除又能被5整除
8、下面的程序是用do while 语句求1 至1000 之间满足―用3 除余2;
用5 除余3;
用7 除余2" 的数,且一行只打印五个数。请分析程序填空。
#include<stdio.h>
main()
{
int i=1,j=0;
do
{
if( 【1】________)
{
printf("%4d",i);
j=j+1;
if( 【2】________) printf("\n");
}
i=i+1;
}
while(i<1000);
}
9、改正下列程序中不正确的语句。
main( )
{
int a;
scanf("%d", a);
if (a = 1) printf("one\n") ;
}
10、关系表达式x+y>5的相反表达式为______。
三、编程题 (共3题,每题0分,共计40分)
1、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。 试题程序:
char*proc(char(*a)[81],int num)
{
}
void main()
{
char ss[l0][81],*max;
int n,i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ssei]);
puts(ss[i]);
}
n=i;
max=proe(ss,n);
printf("\nmax=%s\n",max);
}
2、题⽬描述 有10个学⽣,每个学⽣的数据包括学号、姓名、3门课程的成绩。读⼊这10个学⽣的数据,要求输出3门课程的总平均成绩,以及个⼈平均分最⾼的学⽣的数据(包括学号、姓名、3门课程成绩、平均分数)。 输⼊ 共有10⾏,每⾏包含了⼀个学⽣的学号(整数)、名字(长度不超过19的⽆空格字符串)和3门课程的成绩(0⾄100之间的整数),⽤空格隔开。 输出 第⼀⾏包含了3个实数,分别表⽰3门课程的总平均成绩,保留2位⼩数,每个数之后输出⼀个空格。 第⼆⾏输出个⼈平均分最⾼的学⽣的数据,与输⼊数据格式相同。如果有多位个⼈平均分最⾼的学⽣,输出按照输⼊顺序第⼀个最⾼分的学⽣数据。 请注意⾏尾输出换⾏。 样例输⼊ 样例输出 85.60 87.90 90.40 105 EEE 92 93 94
3、某班综合考评,根据参加集体活动的次数加分,规则如下:参加1次及以下:加1分;参加2至3次:加2分;参加4至7次:参加几次加几分;参加8至10次:加8分;参加10次以上:加10分。程序运行时输入某人参加活动的次数,则输出其应该加的分数;如果输入为负值,则给出相应提示。
相关标签:
- C语言
- 河南工业大学
- 期末冲刺卷