武汉轻工大学2023年C语言期末
本试卷为武汉轻工大学2023年C语言期末,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言期末
一、单项选择题 (共20题,每题2分,共计40分)
( A )
1、下列字符数组初始化语句中,不正确的是________。
( D )
2、若x=5,y=3 则y*=x+5; y的值为________.
( C )
3、以下程序段________. x=-1;
do
{
x=x*x;
}
while(!x);
( B )
4、以下选项中不能正确把cl定义成结构体变量的是________。
( B )
5、下列表达式为关系表达式的为_________。(其中a为一整型变量)
( D )
6、若有下面的说明和定义,则sizeof(struct aa)的值是________。
struct aa {
int rl;
double r2;
float r3;
union uu {
char u1[5];
long u2[2];
} ua;
} mya;
( B )
7、在位运算中,操作数每右移一位,其结果相当于( )
( D )
8、若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是________。
( A )
9、有以下程序
main()
{
int a,b,k,m,*p1,*p2;
k=1,m=8;
p1=&k,p2=&m;
a=/*p1-m;
b=*p1+*p2+6;
printf("%d ",a);
printf("%d\n",b);
}
编译时编译器提示错误信息,你认为出错的语句是________。
( A )
10、下列语句中正确的是________。
( B )
11、有如下程序段int *p,a=6,b=2; p=&a; a=*p+b; 执行该程序段后,a的值为______。
( B )
12、以下程序的输出结果是_______。
#define N 10
void fun(int a[],int n,int m)
{
int i;
for(i=m;i>=n;i--)A[i+1]=a[i];
}
main( )
{
int i,a[N]={1,2,3,4,5,6,7};
fun(a,2,6);
for(i=0;i<4;i++)printf("%d",a[i]);
}
( D )
13、下列结果不相同的是________。
( A )
14、下列对字符串的定义中,错误的是________。
( B )
15、以下叙述中错误的是________。
( C )
16、以下叙述中正确的是________。
( A )
17、以下程序的运行结果是________。
main()
{
int n;
for(n=1;n<=10;n++)
{
if(n%3==0) continue;
printf("%d",n);
}
}
( B )
18、int (*p)[6]; 它的含义为________。
( C )
19、下述标识符中, ( )是合法的用户标识符。
( C )
20、语句int *p;说明了 ____ 。
二、判断题 (共10题,每题2分,共计20分)
( T )
1、putchar函数可以向终端输出一个字符或字符型变量值。
( T )
2、字符常量与字符串是两种不同的常量。
( F )
3、赋值运算符的结合方向为自左向右。
( T )
4、c语言中的main()函数是程序的入口。
( T )
5、break是跳出当前循环,接着执行循环后面的代码。
( T )
6、数组元素下标的个数也称为维数,根据维数的不同,可将数组分为一维数组、二维数组、三维数组、四维数组等。()
( F )
7、switch语句中,每一个case的冒号后面都必须至少跟有一条语句。
( F )
8、c语言程序只能有一个文件。
( F )
9、if(a>0);不能看作是一条合法的条件语句
( F )
10、c 语言中 , 字符串常量存放在字符数组中要有一个结束符 , 该结束符是0 。
三、填空题 (共5题,每题4分,共计20分)
1、下列程序段的运行结果是_____。
main()
{
int m=1,t=1;
for(;;)
{
m=m*t;
t++;
if(t>4)break;
}
printf("%d\n",m);
}
2、在c语言中,用转义字符 \t 表示________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行
3、字符读写函数( )是用于把一个字符写入磁盘文件。
4、%d怎么实现(两位数)左右对齐
5、函数strlen("1234\0xy")的值为:______。
四、程序分析题 (共4题,每题5分,共计20分)
1、有以下程序,请填空____,程序的执行结果是____
main( )
{
int x=5,y;
y=++x*++x;
printf("y=%d\\n",y);
}
float fun (float)
main
{
nfloat x, y;
int flag;
printf("enter x:");
scanf(" %f ", &x);
flag=fun(x);
if (________) printf("x=%f is out of range.\n", x);
else printf("x=%f,y=%f\n", x, fun(x) );
}
________fun(float x)
{
nfloat s;
if ( abs(x)>1 ) return (2);
else
{
s=sqrt (1-x*x);
________;
}
}
2、有以下程序
#include <stdio.h>
main( )
{
char ch1,ch2;
int n1,n2;
ch1=getchar();
ch2=getchar();
n1=ch1-‘0’;
n2=n1*10+(ch2-‘0’);
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后输出结果是 ________。
3、以下程序的输出结果是_____________。
main()
{
float x;
printf("%.4f\n",(x=2*4,x+0.5));
}
4、#include <stdio.h>
void main()
{
int num[10]={1,0,0,0,0,0,0,0,0,0};
int i,j;
for (j=0;j<10;++j)
for (i=0;i<j;++i) num[j]=num[j]+num[i];
for (j=0;j<10;j++) printf("%d ",num[j]);
}
五、编程题 (共3题,每题0分,共计50分)
1、给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。 输入格式: 输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。 输出格式: 按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。 输入样例: 3 zhao 240 400 75 qian 360 120 50 zhou 560 150 80 输出样例: zhao 565.00 qian 430.00 zhou 630.00
2、编程将1...100间能被2、3、5分别整除的数的和求出来并输出。注意,在判断时要按照2、3、5的先后次序来确定优先顺序,如6既能被2整除,又能被3整除,则只算到能被2整除的这种情况里。
3、输入一行字符,将所有的小写字母转换成大写字母,
相关标签:
- C语言
- 武汉轻工大学
- 期末