西安工程大学C语言程序设计专升本
本试卷为西安工程大学C语言程序设计专升本,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计专升本
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、若程序中有宏定义行:#define N 100,则以下叙述中正确的是________。
( B )
2、下列定义数组的语句中,正确的是________。
( D )
3、下面程序的输出结果是 __________.
#include<stdio.h>
void main()
{
int a=-1, b=4, k;
k=(++a<=0)&&(b--<=0);
printf("%d,%d,%d\n",k,a,b);
}
( B )
4、若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10 },*ia=a; 则不能正确表示a数组元素的表达式是 ______。
( A )
5、若有定义语句:int a=3,b=2,c=1; 以下选项中错误的赋值表达式是______。
( C )
6、设有定义语句int a []= { 66,77,99 },则下列对此语句的叙述中错误的是________。
( C )
7、以下关于结构化程序的说法中,正确的是________。
( B )
8、在结构化程序设计中,限制使用goto语句的原因是________。
( C )
9、以下叙述正确的是________。
( A )
10、下列四个不同数制表示的数中,数值最大的是________。
( C )
11、下述语句中,_____中的if语句语法是错误的。 ( )
( C )
12、下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是________。
#include<stdio.h>
main()
{
char sl[]="chinese",s2[]="japnese";
int i;
for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++) if(s1[i]=s2[i]&&i<7) ____________________;
}
( B )
13、语句:printf("%d\n",12&012);
的输出结果是________。
( B )
14、以下对局部变量描述错误的是________。
( C )
15、有以下程序段:
int x=3;
do
{
printf(”%3d”,x-=2);
}
while(!(--x));
程序段的输出结果是________。
( D )
16、下面定义结构变量的语句中错误的是________。
( B )
17、定义file *fp; 则文件指针fp 指向的是________。
( B )
18、有以下程序段若要给 c1、c2、c3 分别输入字母a,b,c,则以下对输入形式的描述正确的是________。
( D )
19、若有代数式|x3+lgx|,则正确的c 语言表达式是________。
( C )
20、以下叙述中正确的是()。
二、判断题 (共10题,每题2分,共计20分)
( T )
1、c 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .exe 的文件。 ( )
( F )
2、在循环过程中,使用break语句和continue语句的作用是一样的
( F )
3、在c程序中,abc与ABC是两个相同的变量。
( T )
4、对于一个具体的函数来说,实参与形参必须一一对应。
( T )
5、当字符数组中的初值个数小于数组长度时,没有赋值的元素会默认赋值为空字符。()
( T )
6、变量被定义后 , 它的作用域和寿命就被确定了 , 并且不可改变。
( T )
7、在switch 语句中, case 后可不加" {}"。
( F )
8、数组名是一个指针,它可以指向数组中的任何元素。( )
( F )
9、c语言中允许嵌套定义函数。
( T )
10、函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。
三、填空题 (共5题,每题4分,共计20分)
1、在c语言中,一个函数一般由两个部分组成,它们是________和________。
2、语句主要是实现次数循环结构,while语句主要是实现当型循环结构。
3、在vc++编译环境下,一个字符型变量所占字节数是________。
4、若a=1,b=2,c=3,d=4, 则表达式a>b?a:c>d?c:d 的值是________。
5、在c 语言中,一个函数一般由两个部分组成,它们是【1】和【2】。
四、程序分析题 (共4题,每题5分,共计20分)
1、求主次对角线之和。
main()
{
static int a[ ][3]={9,7,5,1,2,4,6,8};
int i,j,s1=0,s2=0;
for(i=0;i<3;i++) for(j=0;j<3;j++)
{
if( ________ ) s1=s1+a[i][j];
if( ________ ) s2=s2+a[i][j];
}
printf("%d\n%d\n",s1,s2);
}
2、下面是实现打印九九乘法表的程序,请在画线的位置填上适当的语句,使程序(段)完整。
main()
{
int i , j , k;
for(i=1; ________; i++)
{
for(j=1; ________; j++) printf("%d*%d=%d", ________);
printf("\n");
}
}
3、以下程序可求出所有的水仙花数。(水仙花数是三位正数, 其各位数字的立方和等于该正数,如: 407=4*4*4+0*0*0+7*7*7)main()
{
int x,y,z,a[8],m,i=0;
printf("the special numbers are :\n");
for (【1】________;m++)
{
x=m/100;
y=【2】________;
z=m%10;
if (m==x*x*x+y*y*y+z*z*z)
{
【3】________;
i++;
}
}
for (x=0;x<i;x++)printf(%6d",a[x]);
}
4、有以下程序,程序执行后,输出结果是 ________ 。
#include <stdio.h>
void fun(int *a)
{
a[0]=a[1];
}
main()
{
int a[10]={10,9,8,7,6,5,4,3,2,1},i;
for(i=2;i>=0;i-- )fun(&a[i]);
for(i=0;i<10;i++) printf("%d",a[i]);
printf("\n");
}
五、编程题 (共3题,每题0分,共计50分)
1、题⽬描述 有10个学⽣,每个学⽣的数据包括学号、姓名、3门课程的成绩。读⼊这10个学⽣的数据,要求输出3门课程的总平均成绩,以及个⼈平均分最⾼的学⽣的数据(包括学号、姓名、3门课程成绩、平均分数)。 输⼊ 共有10⾏,每⾏包含了⼀个学⽣的学号(整数)、名字(长度不超过19的⽆空格字符串)和3门课程的成绩(0⾄100之间的整数),⽤空格隔开。 输出 第⼀⾏包含了3个实数,分别表⽰3门课程的总平均成绩,保留2位⼩数,每个数之后输出⼀个空格。 第⼆⾏输出个⼈平均分最⾼的学⽣的数据,与输⼊数据格式相同。如果有多位个⼈平均分最⾼的学⽣,输出按照输⼊顺序第⼀个最⾼分的学⽣数据。 请注意⾏尾输出换⾏。 样例输⼊ 样例输出 85.60 87.90 90.40 105 EEE 92 93 94
2、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
3、从键盘上输入一个字符串, 计算字符串里有多少个空格、小写字母、大写字母、数字。
相关标签:
- C语言
- 西安工程大学
- 专升本