辽宁工业大学2022年C语言程序设计期末

本试卷为辽宁工业大学2022年C语言程序设计期末,题目包括:单项选择题,判断题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。

C语言程序设计期末

一、单项选择题 (共20题,每题2分,共计40分)

(  D  )
1、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。
A、k%2
B、k%2==1
C、(k%2)!=0
D、!k%2==1
(  B  )
2、若有以下程序段: int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%a",a,b,c);执行后的输出结果是________。
A、3,0,-10
B、0,0,5
C、-10,3,-10
D、3,0,3
(  D  )
3、若变量c为char类型,能正确判断出c为小写字母的表达式是________。
A、’a’<=c<=’z’
B、(c>=’a’) || (c<=’z’)
C、(‘a’<=c) and (‘z’>=c)
D、(c>=’a’) && (c<=’z’)
(  D  )
4、以下循环体的执行次数是 _________
#include<stdio.h>
void main( )
{
int i,j;
for(i=0,j=1; i<=j+1; i+=2, j--) printf("%d \n",i);
}
A、3
B、2
C、1
D、0
(  D  )
5、在下面语句中,其含义为"p为指向含n个元素的一维数组的指针变量"的定义语句是________。
A、int p [n]
B、int * p( );
C、int * p(n);
D、int( * p)[n]
(  A  )
6、以下选项中可作为c语言合法常量的是________。
A、-80
B、-080
C、-8e1.0
D、-80.0e
(  C  )
7、下列表达式的值为false的是________。
A、1<3&&5<7
B、!(2>4)
C、3&0&&l
D、!(5<8)||(2<8)
(  C  )
8、在位运算中,操作数每右移两位,其结果相当于________。
A、操作数乘以2
B、操作数除以2
C、操作数除以4
D、操作数乘以4
(  A  )
9、下列合法的字符型常量是________。
A、'\x13'
B、'\081'
C、'65'
D、"\n\
(  B  )
10、若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c); 给a赋予10,0,b赋予22.0,c赋予33.0,下列不正确的输入形式是________。
A、10<回车>22<回车>33<回车>
B、10.0,22.0,33.0<回车>
C、10.0<回车>22.0 33.0<回车>
D、10 22<回车>33<回车>
(  C  )
11、下列各数据中,( ) 最小。
A、11011011(二进制数)
B、76(十进制数)
C、37(八进制数)
D、2A8(十六进制数)
(  D  )
12、有如下程序,若要求a1、a2、c1、c2的值分别为10、20、a、b,正确的数据输入是________。
#include <stdio.h>
void main()
{
int a1, a2;
char c1, c2;
scanf("%d%d", &a1, &a2);
scanf("%c%c", &c1, &c2);
}
A、1020AB↙
B、10 20↙ AB↙
C、10 20 ABC↙
D、10 20AB↙
(  B  )
13、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若有p=&data;
则对data中成员a的引用正确的是________。
A、(*p).data.a
B、(*p).a
C、p->data.a
D、p.data.a
(  B  )
14、以下程序中函数f的功能是:当flag为1时,进行由小到大排序;
当flag为0时,进行由大到小排序。
void f (int b[],int n,int flag)
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(flag?b[i]>b[j]:b[i]<b[j])
{
t=b[i];
b[i]=b[j];
b[j]=t;
}
}
main()
{
int a[10]={5,4,3,2,1,6,7,8,9,10}, i;
f(&a[2],5,0);
f(a,5,1);
for(i=0;i<10;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是______。
A、1,2,3,4,5,6,7,8,9,10,
B、3,4,5,6,7,2,1,8,9,10,
C、5,4,3,2,1,6,7,8,9,10,
D、10,9,8,7,6,5,4,3,2,1,
(  C  )
15、下面的代码int i=10; 之后的for循环语句,语法正确,不会编译出错的是________。
A、for(i=0,i<10,i++)
B、for{
i=0;i<10;i++}
C、for( ;i>5;i--)
D、for(i=0;i<10;i++;)
(  C  )
16、下面函数定义形式正确的是________。
A、int f(int x;int y)
B、int f(int x,y)
C、int f(int ,int y)
D、int f(x,y:int)
(  C  )
17、若有定义:
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);
语句的输出结果为________。
A、i 3
B、n 3
C、f 4
D、l 4
(  A  )
18、以下选项中关于 c 语言常量的叙述错误的是________。
A、经常被使用的变量可以定义成常量
B、常量分为整型常量、实型常量、字符常量和字符串常量
C、所谓常量,是指在程序运行过程中,其值不能被改变的量
D、常量可分为数值型常量和非数值型常量
(  D  )
19、具有相同类型的指针变量p与数组a,不能进行的操作是________。
A、p=a;
B、*p=a[0];
C、p=&a[0];
D、p=&a;
(  D  )
20、下列定义数组的语句中不正确的是________。
A、static int a[2][3]={1,2,3,4,5,6};
B、static int a[2][3]={{1},{4,5}};
C、static int a[][3]={{1},{4}};
D、static int a[][]={{1,2,3},{4,5,6}};

二、判断题 (共10题,每题2分,共计20分)

(   F  )
1、数组中的每一个元素可以属于不同数据类型。 
(   T  )
2、continue语句只能出现在循环体语句中,不能用在其他的地方。 
(   F  )
3、c语言程序是从源文件的第一条语句开始执行的 
(   F  )
4、c语言的书写格式不会影响程序的可读性。 
(   F  )
5、c语言函数返回类型的默认定义类型是
void。 
(   F  )
6、数组的下标从1开始。 
(   F  )
7、在标准c中,没有逻辑型数据,故不能使用逻辑表达式。 
(   T  )
8、c语言中书写程序时一行可以写多个语句。 
(   T  )
9、char s=“C Language”;表示s是一个指向字符串的指针变量,把字符串的首地址赋予s 
(   F  )
10、fseek函数一般用于文本文件。 

三、编程题 (共3题,每题0分,共计40分)

1、编写程序:??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
打印如下形式, ??代表一个数字:
09*??=800*??+9*??
2、编写程序:编程实现输入5个学生的学号、计算他们的期中和期末成绩,然后计算其平均成绩,并输出成绩表
3、任意输入一行字符串保存在一维字符数组中,判断里面数字字符的个数。