延安大学2022年计算机C语言
本试卷为延安大学2022年计算机C语言,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
计算机C语言
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、下列能正确进行字符串赋值的是________。
( C )
2、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
( C )
3、下列关于定点数与浮点数的叙述中错误的是________。
( B )
4、以下对二维数组a进行正确初始化的是________。
( D )
5、执行下面的程序后,a的值为________。
main()
{
int a,b;
for(a=1,b=1;a<=10;a++)
{
if(b%3==l)
{
b+=3;
continue;
}
b-=5;
}
}
( D )
6、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s; 则以下选项中正确的是________。
( C )
7、有以下程序
#include <string.h>
main()
{
char str[][20]={"hello","beijing"},*p=str;
printf("%d\n",strlen(p+20));
}
程序运行后的输出结果是________。
( C )
8、若有以下定义和语句: int s[4][5],(*ps)[5]; ps=s; 则对s数组元素的正确引用形式是________。
( C )
9、设有如下枚举类型定义: enum language
{
basic=3 , assembly , ada=100 , cobol , fortran
};
枚举量 fortran 的值为 。
( A )
10、执行完语句int [] x= new int [25]; 后,则下列哪项说法是正确的
( A )
11、有如下语句: s=int(100*rnd) 执行完毕后,s的值是________。
( B )
12、有以下程序:
struct stu
{
char num[10];
float score[3];
};
main()
{
struct stu s[3]={{"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s;
int i;
float sum=0;
for(i=0;i<3;i++ ){
sum=sum+p->score[i];
}
printf("%6.2f\n",sum);
}
程序运行后的输出结果是________。
( B )
13、设有定义:long x= -123456l; 则以下能够正确输出变量x值的语句是________。
( D )
14、设x,y均为int型变量,且x=10,y=3,则printf("%d,%d\n",x-,-y);
语句的输出结果是______。
( D )
15、已有定义int a= -2; 和输出语句 printf("%8x",a); 以下正确的叙述是________。
( D )
16、下面有关for循环的正确描述是________。
( C )
17、在c语言中,只有在使用时才占用内存单元的变量,其存储类型是________。
( B )
18、有以下程序
struct stu
{
char num[10];
float score[3];
};
main( )
{
struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;
int i;
float sum=0;
p=s;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%.2f\n",sum);
}
程序运行后的输出结果是________。
( C )
19、c语言规定,在一个源程序中,main函数的位置________。
( D )
20、以下不正确的说法是____
二、填空题 (共10题,每题2分,共计20分)
1、c语言三个循环语句分别while语句、________语句和________语句。
2、下面程序的运行结果是: ________
int f( int a[], int n)
{
if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main ( )
{
int aa[3]={1,2,3},s;
s=f(&aa[0],3);
printf("%d\n",s);
}
3、已知t=5,则表达式"t-=t+=3"的值是______。
4、以下程序运行后的输出结果是________。
main()
{
char s[ ]="gfedcba";
int p=6;
while(s[p]!=‘d’)
{
printf("%c ", p);
p=p-1;
}
}
5、%d怎么实现(两位数)左右对齐
6、循环语句for(i=0;i<3;i++) printf("*");
表达式i=0 执行【1】________次,表达式i++执行【2】________次。
7、float f=3.1415927;
printf("%f,%5.4f,%3.3f",f,f,f);
则程序的输出结果是________。
8、数学表达式10<y或者y<-10改写为c语言表达式是________。注:表达式要在英文半角状态下按原表达式顺序书写,且表达式中不要留空格。
9、函数的形参在未被调用前不分配空间,函数形参的____要和实参相同。
10、在C语言中,以______作为字符串结束标志。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数 例如:从键盘上输入2345,则程序运行的结果应当为:n=2345()
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*2*3+3*4*5+5*6*7+...+99*100*101的值。
相关标签:
- C语言
- 延安大学