辽宁科技大学2022年C语言程序设计冲刺卷

本试卷为辽宁科技大学2022年C语言程序设计冲刺卷,题目包括:单项选择题,填空题,编程题。

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

C语言程序设计冲刺卷

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

(  B  )
1、以下选项中正确的整型常量是________。
A、12.
B、-20
C、1,000
D、4 5 6
(  D  )
2、c语言中,下列不合法的字符常量是________。
A、'\xff'
B、'\65'
C、'&'
D、'\028'
(  D  )
3、有以下程序 fun(int a, int b)
{
if(a>b) return(a);
else return(b);
}
main()
{
int x=3, y=8, z=6, r;
r=fun(fun(x,y), 2*z);
printf("%d\n", r);
}
程序运行后的输出结果是________。
A、3
B、6
C、8
D、12
(  A  )
4、有以程序
#include <stdio.h>
#include <string.h>
typedef struct
{
char name[9];
char sex;
float score[2];
} stu;
void f( stu a)
{
stu b={"zhao" ,’m’,85.0,90.0} ;
int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++) a.score[i]=b.score[i];
}
main()
{
stu c={"qian",’p’,95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]);
}
程序的运行结果是________。
A、Qian,f,95,92
B、Qian,m,85,90
C、Zhao,f,95,92
D、Zhao,m,85,90
(  B  )
5、下面程序输出数组中的最大值,由 s 指针指向该元素 .
void main ()
{
int a[10]={6 , 7 , 2 , 9 , 1 , 10 , 5 , 8 , 4 , 3 , } , *p , *s ;
for ( p=a , s=a ; p-a<10 ; p++ )
if (________) s=p ;
printf ( "the max : %d" , *s ):
}
则在 if 语句中的判断表达式应该是______。
A、p>s
B、*p>*s
C、a[p]>a[s]
D、p-a>p-s
(  B  )
6、若要定义a为3×4的二维数组,正确的定义语句是________。
A、float a(3,4);
B、float a[3][4];
C、float a(3)(4);
D、float a[3,4];
(  C  )
7、下列语句中执行跳转功能的语句是________。
A、for语句
B、while语句
C、continue语句
D、switch语句
(  B  )
8、用高级程序设计语言编写的程序,________。
A、计算机能直接执行
B、具有良好的可读性和可移植性
C、执行效率高,但可读性差
D、依赖于具体机器,可移植性差
(  C  )
9、考虑函数原型 void test(int a,int b=7,char z='*'),下面的函数调用中,属于不合法调用的是________。
A、test(5);
B、test(5,8);
C、test(6,'#');
D、test(0,0,'*');
(  A  )
10、以下不能用于实型数据的运算符是________。
A、%
B、/
C、*
D、+
(  B  )
11、设有如下定义:
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
(  A  )
12、有以下程序
main()
{
int i=0,s=0;
do
{
if(i%2)
{
i++;
continue;
}
i++;
s+=i;
}
while(i<7);
printf("%d\n",s);
}
执行后输出的结果是______。
A、16
B、12
C、28
D、21
(  A  )
13、算法指的是________。
A、解决问题的方法、步骤和思路的一种描述
B、计算机程序
C、排序方法
D、数据处理
(  B  )
14、有以下程序段:char c1,c2,c3; scanf("%c%c%c",&c1,&c2,&c3); 若要给 c1、c2、c3 分别输入字母 a bc,则以下对输入形式的描述正确的是________。
A、字母 A B C 之间可以用空格分隔
B、字母 A B C 之间不能有分隔符
C、字母 A B C 之间可以用回车符分隔
D、字母 A B C 之间可以用 Tab 键分隔
(  A  )
15、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若要使p指向data中的a域,正确的赋值语句是________。
A、p=(struct sk*)&data.a;
B、p=(struct sk*) data.a;
C、p=&data.a;
D、*p=data.a;
(  D  )
16、若有代数式|x3+lgx|,则正确的c 语言表达式是________。
A、fabs(x*3+log 10(x))
B、abs(pow(x,3)+log10(x))
C、abs(pow(x,3)0)+log10(x))
D、fabs(pow(x,3)0)+log 10(x))
(  A  )
17、下面程序的运行结果是________。
#include<stdio.h>
main()
{
char ch[7]={"12ab56"};
int i,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';
printf("%d\n",s);
}
A、1
B、1256
C、12ab56
D、1 2 5 6
(  A  )
18、main()
{int x=1,a=0,b=0;
switch (x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;}
printf("a=%d,b=%d",a,b);}
该程序的输出结果是( )
A、2,1
B、1,1
C、1,0
D、2,2
(  A  )
19、char a[]="This is a program.";输出前 5 个字符的语句是()。
A、printf("%.5s",a);
B、puts(a);
C、printf("%s",a);
D、a[5*2]=0;puts(a);
(  B  )
20、int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是()。
A、2
B、3
C、4
D、不一定

二、填空题 (共10题,每题2分,共计20分)

1、有int x=3,y=-4,z=5;
则表达式(x&&y)==(x||z)的值为 ________。
2、读取文件的函数名是【1】。
3、宏定义必须写在______之外
4、结构化程序设计的3种基本结构是:( )结构、选择结构、循环结构,这三种基本结构构成了复杂的c语言程序。
5、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数________。
6、执行以下语句段
int i;
int fun(int x)
{
return ((x>0)?fun(x-1)+fun(x-2):1);
}
i=fun(3);
i的值为________。
7、输入一个字符,如果它是大写字母,则把它变成小写字母,如果它是一个小写字母,则把它变成大写字母,其它字符不变。请分析程序填空。
main()
{
char ch;
scanf("%c",&ch);
if(【1】________) ch=ch+32;
else if(ch>='a'&&ch<='z') 【2】________;
printf("%c",ch);
}
8、鸡兔同笼,头30,脚90,下面程序段计算鸡兔各有多少只。请分析程序填空。for(x=1;x<=30;x++ )
{
y=30-x;
if( 【1】________) printf("%d,%d",x,y);
}
9、请阅读并分析以下程序,该程序的输出结果是:
#include <stdio.h>
main( )
{
int n[3][3], i, j;
for(i=0;i<3;i++ )
for(j=0;j<3;j++ )n[i][j]=i+j;
for(i=0;i<2;i++ )
for(j=0;j<2;j++ )n[i+1][j+1]+=n[i][j];
printf("%d\n", n[i][j]);
}
10、C语言中的标识符只能由三种字符组成,他们是 字母,数字,___。

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

1、给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。
输入格式:
输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。
输出格式:
在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。
输入样例:
3
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
25.0
输出样例:
25.00, Programming in Delphi
18.50, Programming in VB
2、编制程序打印如下图形(考虑将输出的行数由输入的值来控制):
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
FFFFFFFFFFF
GGGGGGGGGGGGG
3、整数转字符串。输入一个整数1234,得到字符串: “1234”