中国民用航空飞行学院C语言程序设计期末精选样卷
本试卷为中国民用航空飞行学院C语言程序设计期末精选样卷,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计期末精选样卷
一、单项选择题 (共20题,每题2分,共计40分)
( A )
1、以下程序段给数组所有元素输入数据:
main()
{
int a[10],i=0;
while(i<10)scanf("%d",);
}
应在下划线处填入的是________。
( C )
2、设整型变量n的值为2,执行语句"n+=n-=n*n; "后,n的值是________。
( B )
3、以下能正确定义一维数组的选项是________。
( B )
4、c语言对嵌套if语句的规定是:else总是与( ) 。
( C )
5、以下程序段的输出结果是 int a=1234; printf("%2d\n",a);
( B )
6、以下程序的输出结果是
#include <stdio.h>
main()
{
int i=0,a=0;
while(i<20)
{
for(;;)
{
if((i%10)==0) break;
else i--;
}
i+=11;
a+=i;
}
printh("%d\n",a);
}
( A )
7、下列四组字符串中都可以用作c语言程序中的标识符的是________。
( D )
8、有定义int n=789; 下列表达式结果为8的是________。
( A )
9、以下程序段中与语句k=a>b ? (b>c ? 1:0):0; 功能等价的是________。
( B )
10、在以下各标识符中,合法的用户标识符是________。
( B )
11、下列程序的输出结果是________。
#include <stdio.h>
struct abc
{
int a, b, c, s;
} ;
main ()
{
struct abc s[2] = { {1, 2, 3}, {4, 5, 6} };
int t;
t = s[0].a + s[1].b;
printf ("%d\n", t);
}
( A )
12、设a为整型变量,不能正确表达数学关系10
( B )
13、以下选项中,能定义m为合法的结构体变量的是______。
( C )
14、以下关于宏的叙述中正确的是______。
( C )
15、若有以下语句,则正确的描述是char a[] ="toyou";
char b[] ={′ t′ ,′o′ ,′ y′,′o′ ,′u′ };
( D )
16、设有下面的程序段:char s[]="china"; char *p=s; 则下列叙述正确的是____。
( B )
17、对长度为 8 的数组进行快速排序,最多需要的比较次数为________。
( A )
18、当执行下面程序且输入:abc时,输出的结果是______。
#include <stdio.h>
#include <string.h>
main( )
{
char ss[10]="12345";
strcat(ss,"6789");
gets(ss);
printf("%s\n",ss);
}
( C )
19、以下选项中不正确的字符常量是________。
( A )
20、在 C语言中,为了结束由 while 语句构成的循环,while 后一对圆括号中表达式的值应该为()。
二、判断题 (共10题,每题2分,共计20分)
( F )
1、对于一个具体的函数来说,实参与形参不必一一对应。
( T )
2、非静态全局变量的作用域可以扩展到构成该程序的其他源程序文件中。
( T )
3、在c语言中,同一种数据类型在不同的编译系统中所占空间不一定相同。()
( F )
4、switch语句的各个case和default的出现次序不影响执行结果
( T )
5、调用输入输出库函数时,编译预处理命令为 #include <stdio.h>。
( T )
6、选择结构( if 语句)和循环结构都可以使用嵌套形式
( F )
7、在标准c语言中,字符串是以‘ 0’结束的,故字符串的长度也包括‘ 0’。
( T )
8、一个函数利用return 不可能同时返回多个值
( T )
9、C 语言程序实现与其他高级语言一样也要经过编辑、编译连接和运行这样的三步曲。
( T )
10、数组名能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。
三、填空题 (共5题,每题4分,共计20分)
1、c语言本身不提供输入输出语句,输入和输出操作是由________来实现的。
2、在循环的过程中,有时要提前中止循环,通常采用 () 语句。
3、若int a=5,b=4,c=2; 表达式a>b!=c 的值是________。
4、以下程序对输入两个整数,按从大到小的顺序输出。请在____内填入正确的内容。
void main()
{
int x,y,z;
scanf("%d,%d",&x,&y);
if(_________)
{
z=x;
_________
}
printf("%d,%d",x,y);
}
5、已知函数定义为:int stat(int a,float *p),则此函数的两个参数类型分别是______、 浮点型。
四、程序分析题 (共4题,每题5分,共计20分)
1、语句putchar('a'+2);的输出结果是________。
2、下列程序段的运行结果是________。
#define MIN(x , y) x<y? x : y
main()
{
int a , b , min;
A=10, b=11;
Min=MIN(a,b);
printf("min=%d\n" , min);
}
3、下列给定程序中,函数ptoc()的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头两个元素进行排序,然后把第3个字符插入前两个字符中,插入后前3个字符依然有序;
再把第4个字符插入前三个字符中,待排序的字符串已 在主函数中赋予。 请添加合适的语句____________,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
#define M 80
void proc(char*arr)
{
int i,j,n;
char ch;
n=strlen(arr);
for(i=1;i<n;i++)
{
ch=arr[i];
j=i-1;
while(______________)
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
void main()
{
char a[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("The original string:%s\n",a);
proc(a);
printf("The string after sortin9: %s\n\n",a);
}
4、下列给定的程序中,函数proc()的功能是:判断字符ch 是,与str所指字符串中的某个字符相同;
若相同,则什么也不做,若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
void proc(char str,char ch)
{
while(*str &&*str!=ch) str++;
if(*str==ch)
{
str[0]=ch;
str[1]='0':
}
}
void main()
{
char str[81],ch;
system("cls");
printf("\nplease enter a string:");
gets(str);
printf("\n please enter the character to search:");
ch=getchar();
proc(str,ch);
printf("\nthe result is%s\n",str);
}
五、编程题 (共3题,每题0分,共计50分)
1、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。 试题程序:
char*proc(char(*a)[81],int num)
{
}
void main()
{
char ss[l0][81],*max;
int n,i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ssei]);
puts(ss[i]);
}
n=i;
max=proe(ss,n);
printf("\nmax=%s\n",max);
}
2、若有以下银行卡信息:
struct card{
int id;//银行卡号
int bonus; //金额
};
请编写程序,从键盘输入5条银行卡记录,使用结构体数组存
储这些数据,并按金额升序排序,输出排序后的结果。
【输入形式】5条银行卡记录分行输入,每行数据用空格间隔
【输出形式】分5行输出数据,每行数据均使用空格间隔
【输入样例】
1001 20
1002 80
1003 50
1004 10
1006 40
【输出样例】
1004 10
1001 20
1006 40
1003 50
1002 80
3、从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。
相关标签:
- C语言
- 中国民用航空飞行学院
- 期末精选样卷