山东工商学院2022年计算机C语言预测卷
本试卷为山东工商学院2022年计算机C语言预测卷,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
计算机C语言预测卷
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、设有定义:"double x[10],*p=x; ",以下能给数组x下标为6的元素读人数据的正确语句是________。
( C )
2、若 x=0 , y=3 , z=3, 以下表达式值为 0 的是________。
( D )
3、下列函数原型声明中错误的是________。
( D )
4、若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元 int *p p=______malloc(sizeof(int)); 则应填入______。
( B )
5、对以下说明语句的正确理解是________。 int a[10]= {6,7,8,9,10 };
( C )
6、以下关于c语言数据类型的叙述中正确的是________。
( D )
7、下列4种不同数制表示的数中,数值最小的一个是________。
( B )
8、设矩阵a是一个n×n对称矩阵.即a[i,j]=a[i,j],为了节省存储空间,将其下三角部分按行序为主序存放在一维数b[1...n(n+1)/2]中,对任一下三角元素aij(i≥j),在一维数组b的下标位置k的值是______。
( D )
9、以下选项中,能用作数据常量的是________。
( D )
10、有以下程序
#include <stdio.h>
void fun(int a[],int n) {
int i,t;
for(i=0;i<n/2;i++) t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
main() {
int k[10]=1,2,3,4,5,6,7,8,9,10,i;
fun(k,5);
for(i=2;i<8;i++) printf("%d",k[i]);
printf("\n");
}
程序的运行结果是______。
( A )
11、下列程序的运行结果是________。
main()
{
int a=-5,b=1,c=1;
int x=0,y=2,z=0;
if(c>0)x=x+ y;
if(a<=0)
{
if(b>0) if(c<=0)y=x-y;
}
else if(c>0)y=x-y;
else z=y;
printf("%d,%d,%d\n",x,y,z);
}
( D )
12、有以下程序:
#include <stdio.h>
struct s
{
int a, b;
}
data[2]= {10, 100, 20, 200 };
main()
{
struct s p=data[1];
printf("%d\n", ++(p.a));
}
程序运行后的输出结果是______。
( C )
13、关于二进制,下列描述错误的是________。
( C )
14、有如下程序
main( )
{
int m=2,n=-1,d=6;
if(m<n)if(n<0) d=0;
else d++;
printf("%d\n",d);
}
该程序的输出结果是______。
( B )
15、有如下程序
main( )
{
int n=8;
while(n>6)
{
n--;
printf("%d",n);
}
}
该程序段的输出结果是______。
( C )
16、若有定义:
struct keyword
{
char key[20];
int id;
}
kw[] = {"void", 1, "char", 2, "int", 3, "float", 4, "double", 5 };
则printf("%c,%d\n", kw[3].key[0], kw[3].id);
语句的输出结果为________。
( C )
17、下面正确的字符串常量是________。
( D )
18、以下叙述中正确的是________。
( B )
19、设有声明语句:int a=1,b=0;
则执行以下语句后输出()
switch (a)
{
case 1:switch (b)
{
case 0: printf(""**0**"");
break;
case 1: printf(""**1**"");
break;
}
case 2: printf(""**2**"");
break;
}
( D )
20、以下程序段的输出结果为()。
char c[]="abc";
int i=0;
do ;while(c[i++]!='\0');printf("%d",i-1);
二、填空题 (共10题,每题2分,共计20分)
1、请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 ________ ( double,double);
main()
{
double x,y;
scanf("%lf%lf",&x,&y);
printf("%lf\n",max(x,y));
}
double max(double a,double b)
{
return(a>b ? a:b);
}
2、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数________。
3、输入一个3*3的实数矩阵,求主对角线元素中的最大值。
main()
{
float s[3][3],max1,max2,x;
int i,j;
for(i=0;i<3 ;i++) for(j=0;j<3;j++)
{
scanf("%f", &x);
s[i][j]=x;
}
max=s[0][0];
for(i=1;i<3;i++) if(max<________) max=________;
printf("max1=%f\n",max);
}
4、访问变量的方式有 ______ 和 _______
5、c语言的源程序拓展名为()编译后生成() 链接后生成()
6、结构化程序三种结构为________。
7、函数yahui 能够按以下形式构成一个杨辉三角形,请填空。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1⋯⋯⋯ ..
#define N 11
Yahui(int [][N])
{
int i,j;
for(i=1;i<N;i++)
{
a[i][1]=1;
a[i][i]=1;
}
for(【1】________;i<N;i++)
for(j=2; 【2】________;j++)
a[i][j]= 【3】________+a[i-1][j];
}
8、数学表达式a<b<=c改写为c语言表达式是__________。注:表达式要在英文半角状态下按原表达式顺序书写,且表达式中不要留空格。
9、C语言源程序经过编译后,生成文件的后缀名是 ___。
10、有如下函数头: int max(int i,int j),则此函数有______个参数。
三、编程题 (共3题,每题0分,共计40分)
1、题⽬描述 万⾥⼗佳歌⼿⽐赛终于开始了,评委席坐了N(N⼤于等于3,并且N⼩于80)个评委,他们商量了很久,终于找出⼀个公正合理的评分⽅法。每次歌⼿唱完后,每个评委⾃⼰打⼀个分,然后在N个评委的打分中,去掉⼀个最⾼分,⼀个最低分。然后再把剩下的评委的打分求平均值~ 。 但是问题是他们嫌每次拿计算器按实在太烦。作为⼀名计算机专业学⽣~你⽤个程序帮帮他们搞定吧。 输⼊ 输⼊有多组数据。每组2⾏,第⼀⾏是⼀个N,代表有N个评委。然后第⼆⾏有N个数,每个数⽤空格隔开,代表每个评委的打分。 当输⼊的N为0的时候结束输⼊。 输出 对于每组输⼊,输⼊最终这个选⼿的得分(⼩数点后⾯保留2位有效数字)。 样例输⼊ 3 74 36 34 7 16 97 27 26 74 96 88 样例输出 36.00 62.20
2、用*号输出字母C的图案。
3、任意输入一行字符串保存在一维字符数组中,判断里面数字字符的个数。
相关标签:
- C语言
- 山东工商学院
- 预测卷