河南工业大学2022年C语言程序设计
本试卷为河南工业大学2022年C语言程序设计,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言程序设计
一、单项选择题 (共20题,每题2分,共计40分)
( D )
1、有以下程序
main()
{
int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d ",i,j,k);
}
程序运行后的输出结果是________。
( A )
2、c 源程序中不能表示的数制是________。
( C )
3、若有定义"float a=25,b,*p=&b;",则下列对赋值语句"*p=a;"和"p=&a;"的正确解释为( )。
( B )
4、下列程序的输出结果是________。
main()
{
struct st
{
int y,x,z;
}
;
union
{
long i;
int j;
char k;
}
un;
printf("%d,%d\n",sizeof(struct st),sizeof(un))
}
( B )
5、有以下程序
main()
{
int i,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++) printf("%d",t[2-i][i]);
}
程序执行后的输出结果是________。
( C )
6、有以下程序
main()
{
int k=4,n=0;
for( ; n<k ; )
{
n++;
if(n%3!=0) continue;
k--;
}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是________。
( D )
7、以下能正确定义数组并正确赋初值的语句是______。
( C )
8、设有如下枚举类型定义: enum language
{
basic=3 , assembly , ada=100 , cobol , fortran
};
枚举量 fortran 的值为 。
( D )
9、在16位pc机上使用c语言,若有如下定义
struct data {
int i;
char ch;
double f;
} b;
则结构变量b占用内存的字节数是________。
( A )
10、以下叙述中错误的是______。
( C )
11、对于ascii 码在机器中的表示,下列说法正确的是________。
( B )
12、若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c); 给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是______。(ц代表一个空格符)
( C )
13、以下关于链式存储结构的叙述中哪一条是错误的?
( D )
14、以下能正确定义数组并正确赋初值的选项是______。
( B )
15、下列各语句序列中,能够将变量u.s 中最大值赋值到变量t 中的是________。
( D )
16、以下叙述中正确的是________。
( B )
17、假定所有变量均已正确定义,下列程序段运行后x的值是________。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3;
( D )
18、下面说法中错误的是________。
( A )
19、执行以下循环语句时,下列说法正确的是________。x = -1;
do
{
x = x * x;
}
while (x == 0);
( A )
20、从键盘上输入某字符串时,不可使用的函数是()。
二、填空题 (共10题,每题2分,共计20分)
1、在c语言中除了使用c提供的标准类型名(如int、char等)外,还可以用_________声明新的类型名来代替已有的类型名。
2、以下程序的输出结果是_____________。
main()
{
int a;
printf("%d\n",(a=3*4,a*5,a+5));
}
3、一个3位的二进制数能表示几个数?
4、已知char str[]="student",则strlen(str)的值为________。
5、开发一个c程序要经过编辑、编译、()和运行4个步骤、
6、局部变量又称内部变量,是在函数( )定义的变量。
7、循环语句for(i=0;i<3;i++) printf("*");
表达式i=0 执行【1】________次,表达式i++执行【2】________次。
8、若有定义: int a[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2] 得到的初值是【1】, a[2][1] 得到的初值是【2】。
9、以下程序的运行结果是【1】________,其算法是【2】________。
main()
{
int a[5]={9,6,8,3,-1},i,j,t,p;
sort(a);
for (i=0;i<=4;i++)printf("%3d",a[i]);
}
sort(int a[])
{
int i,j,t,p;
for (j=0;j<4;j++)
{
p=j;
for (i=j;i<=4;i++)if(a[i]<a[p]) p=i;
t=a[p];
a[p]=a[j];
a[j]=t;
}
}
10、以下程序在输入5,2之后的执行结果是________。
#include<stdio.h>
void main()
{
int s,t,a,b;
scanf("%d,%d",&a,&b);
s=1;
t=1;
if(a>0) s=s+1;
if(a>b) t=s+t;
else if(a==b) t=5;
else t=2*s;
printf("s=%d,t=%d\n",s,t);
}
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:输出 200 ~ 300 之间的所有素数,要求每行输出 8 个素数。
2、定义⼀个结构体student,存储学⽣的学号、名字、性别和年龄,读⼊每个学⽣的所有信息,保存在结构体中,并输出。结构体student的定义如下:
struct student {
int num;
char name[20];
char sex;
int age;
};
本题要求使⽤指向结构体数组进⾏输⼊和输出。
输⼊:
第⼀⾏有⼀个整数n,表⽰以下有n个学⽣的信息将会输⼊。保证n不⼤于20。
以后的n⾏中,每⼀⾏包含对应学⽣的学号、名字、性别和年龄,⽤空格隔开。保证每⼀个⼈名都不包含空格且长度不超过15,性别⽤M和F两个字符来表⽰。
输出:
有n⾏,每⾏输出⼀个学⽣的学号、名字、性别和年龄,⽤空格隔开。
请注意⾏尾输出换⾏。
样例输⼊:
3
10101 LiLin M 18
10102 ZhangFun M 19
10104 WangMin F 20
样例输出:
10101 LiLin M 18
10102 ZhangFun M 19
10104 WangMin F 20
3、任意输入一行字符串保存在一维字符数组中,判断里面数字字符的个数。
相关标签:
- C语言
- 河南工业大学