中国民用航空飞行学院历年C语言专升本
本试卷为中国民用航空飞行学院历年C语言专升本,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言专升本
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、有以下程序:
main()
{
char x='a';
x=(x>='a' &&x<='z')?(x十32):x;
printf("%c\n",x);
}
程序的输出结果是________。
( C )
2、下列能正确进行字符串赋值的是________。
( B )
3、下列表达式的结果正确的是________。 int aa,bb,cc,dd; aa=bb=cc=dd=1; (aa+1==2) ? bb=aa+2 : aa+3
( D )
4、putchar ( )函数可以向终端输出一个 ( ) 。
( A )
5、有以下程序 struc stu
{
char name[10];
int num;
};
void f1(struct stu c)
{
struct stu b={"lisiguo",2042};
c=b;
}
void f2(struct stu *c)
{
struct stu b={"sundan",2044} ;
*c=b;
}
main( )
{
struct stu a={"yangsan",2041},b={"wangyin",2043} ;
f1(a);
f2(&b);
printf("%d %d\n",a.num,b.num);
}
执行后的输出结果是________。
( C )
6、以下选项中合法的标识符是________。
( B )
7、定义如下一维数组:int a[5],*p; 则下列描述错误的是________。
( C )
8、设
struct data
{
int a;
float b;
} c,*p=&c;
,引用正确的是________。
( B )
9、下列语句顺序执行后,a的值是________。 int a=13; a%=a/5;
( A )
10、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
( B )
11、以下选项中与if(a==1)a++; else a=b; 语句功能不同的语句是________。
( C )
12、下列关于数组初始化的说法,正确的是________。
( D )
13、以下程序的输出结果是______。
main()
{
char a[]="programming",b[]="language";
char *p1,*p2;
int i;
p1=a;
p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i))
printf("%c",*(p1+i));
}
( B )
14、有以下程序
main()
{
int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;
for(i=0;i<3;i++)
for(k=i+1;k<4;k++)
if(a[i][i]<a[k][k])
{
t=a[i][i];
a[i][i]=a[k][k];
a[k][k]=t;
}
for(i=0;i<4;i++)
printf("%d,",a[0][i]);
}
程序运行后的输出结果是________。
( C )
15、下面程序的输出结果是________。
#include<stdio.h>
main() {
char a[]='a','b','c','d','f','g',*p;
p=a;
printf("%c\n",*p+4);
}
( A )
16、通常适用于从被调用函数中将一个值传回主调函数的参数传递方式是________。
( A )
17、以下不正确的定义语句是________。
( A )
18、定义变量 int a; ,则表达式 a = 3, 5; 执行过后,a的值和表达式的值分别是________。
( B )
19、下面用户自定义的标识符中,合法的是________。
( A )
20、以下叙述中错误的是
二、判断题 (共10题,每题2分,共计20分)
( T )
1、c程序中如果对一维数组的全部元素都赋初值,则定义数组时不必指定数组长度。
( T )
2、若函数体内没有return语句,程序的流程就执行到函数体的末尾,然后返回到调用函数。这时带回一个不确定的函数值。
( F )
3、字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的双引号("")引起来。()
( F )
4、c 语言标准输出操作中 ,putchar() 函数可以输出显示一个字符串。
( T )
5、如果for的循环体语句中没有使用continue语句,则以下for语句和while语句等价。for (表达式1; 表达式2; 表达式3) for的循环体语句 表达式1;
while (表达式2)
{
for的循环体语句;
表达式3;
}
( T )
6、函数的实参可以是常量,变量或表达式
( F )
7、对二维数组a来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的.
( T )
8、静态外部变量只在本文件内可用.
( T )
9、c 语言具有简洁明了的特点。
( T )
10、在c语言中,当一个逻辑表达式的值为"假"时,该表达式的值一定是 0 ( )
三、填空题 (共5题,每题4分,共计20分)
1、在循环的过程中,有时要提前中止循环,通常采用 () 语句。
2、c 语言规定,可执行程序的开始执行点是________。
3、C语言提供的三种逻辑运算符是______。
4、若有定义:double x[3][5];则数组中列下标的上限为_____ 。
5、C语言中的每条基本语句以______作为结束符,每条复合语句以}作为结束符。
四、程序分析题 (共4题,每题5分,共计20分)
1、以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空 int isprime(int a)
{
int i;
for(i=2;i<=a/2;i++) if(a%i==0)________;
________;
}
2、下列程序段的运行结果是________。
main()
{
int a=5,b=6,c;
int add(int , int);
c=add(a , b);
printf("%d\n",c);
}
int add( int x , int y )
{
int z;
z=x+y;
return z ;
}
3、有以下程序
#include <string.h>
main()
{
char a[]={'a','b','c','d','e','f','g','h','\0'};
int j;
j=strlen(a);
printf("%d\n",j);
}
程序运行后的输出结果是________。
4、以下程序的运行结果是【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;
}
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:从键盘输入 n (n<10)个学生的学号(学号为4位的整数,从1000开始)、成绩并存入结构数组中,按成绩从低到高排序并输出排序后的学生信息。 输入输出示例:括号内为说明,无需输入输出 输入样例: 3 (n=3) 1000 85 1001 90 1002 75 输出样例: 1002 75 1000 85 1001 90
2、打印出如下图案(菱形)
3、编写程序,从输入的一行字符串中抽取一部分(从第n个字符开始,抽取m个字符)构成一个新的字符串,并输出。其中n>0且n<=字符串的长度,否则打印“起始位置n越界” 要求:n和m都由用户输入。 如果抽取的字符串长度不够,则按照实际长度抽取,例如,字符串为“abcde”,若n=2,m=3,则抽取结果为“bcd”;若n=3,m=5,则抽取结果为“cde”;若n=0,m=4 则输出:起始位置0越界 ;若n=6,m=2 则输出:起始位置6越界
相关标签:
- C语言
- 中国民用航空飞行学院
- 专升本