湖南工商大学历年C语言程序设计专升本复习题

本试卷为湖南工商大学历年C语言程序设计专升本复习题,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言程序设计专升本复习题

一、填空题 (共40题,每题2.5分,共计100分)

1、在循环中,continue语句与break语句的区别是:continue语句是语句的区别是:continue语句是 ________ ,break 是 ________ 。
2、定义4行3列的整型二维数组a的语句是________。
3、表示"整数x的绝对值大于3"时值为"真"的c语言表达式是 ________。
4、一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:________ 。
5、有以下程序
#include<stdio.h>
main() {
int i,n[]={0,0,0,0,0};
for (i=1;i<=4;i++)
{
n[i]=n[i-1]*3+1;
printf("%d ",n[i]);
}
}
程序运行后的输出结果是________。
6、以下程序运行后的输出结果是 ________ 。
main()
{
int x=0210;
printf("%x\n",x);
}
7、有以下语句段 int n1=10,n2=20;
printf(" ________",n1.n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20
8、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。
#include <stdio.h>
#include <ctype.h>
main()
{
char s[80], d[80];
int i,j;
gets(s);
for(i=j=0;s[i]!='\0';i++) if( ________ )
{
d[j]=s[i];
j++;
}
d[j]='\0';
puts(d);
}
9、若从键盘输入58,则以下程序输出的结果是 ________ 。
main()
{
int a;
scanf("%d",&a);
if(a>50) printf("%d",a);
if(a>40) printf("%d",a);
if(a>30) printf("%d",a);
}
10、以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;
成员变量link是指向自身结构体的指针.请将定义补充完整。
struct node
{
int info;
________ link;
}
11、以下程序的输出结果是 ________ 。
main()
{
char *p="abcdefgh",*r;
long *q;
q=(long*)p;
q++;
r=(char*)q;
printf("%s\n",r);
}
12、以下程序的输出结果是 ________ 。
main()
{
char s[]="abcdef";
s[3]=‘\0';
printf("%s\n",s);
}
13、执行以下程序后,输出'#'号的个数是 ________ 。
#include <stdio.h>
main()
{
int i,j;
for(i=1; i<5; i++)
for(j=2; j<=i; j++) putchar('#');
}
14、若有定义语句:int a=5;,则表达式a++的值是 ________ 。
15、在c语言中,数组元素的下标从__________开始的。
16、在循环的过程中,有时要提前中止循环,通常采用 () 语句。
17、在定义函数时函数名后面括号中的变量名称为________。
18、有函数调用fun1(x+y, (y,z), 10, fun((x,y-1)));
函数fun1有【1】个参数。
19、在c语言中,关系运算符中的"小于等于"表示为_______。
20、宏定义必须写在______之外
21、设a=5,b=2,则表达式"!a+b"的值是________。
22、已知"float x=0.5;int y=8;",则算术表达式"(int)(x+y/5)"的值是________。
23、已知char str[]="happy!",则strlen(str)的值为________。
24、已知char str[]="student",则strlen(str)的值为________。
25、若有以下定义, int m=5,y=2;
则计算表达式y+=y-=m*=y 后y的值是【】。
26、设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为 ________。
27、以下程序的输出结果是________。
main()
{
int x=5,y=6;
printf("%daa%d",++x,y――);
}
28、若定义了int a[10],将数组元素中最后一个元素"赋值为10"语句是________。
29、c语言中文件操作结束节后,必须关闭文件。而且关闭文件是通过调用________函数来实现。
30、用&&写出判断一个字母是否为大、小写的语句
31、以下程序可求出所有的水仙花数。(水仙花数是三位正数, 其各位数字的立方和等于该正数,如: 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]);
}
32、函数del 的作用是删除有序数组a 中的指定元素x。已有调用语句n=del(a,n,x);
其中实参n 为删除数组元素的个数,赋值号左边的n 为删除后数组元素的个数。请填空。del(int a[],int n,int x)
{
int p,i;
p=0;
while (x>=a[p]&&p<n)【1】________;
for(i=p-1;i<n;i++)【2】________;
n=n-1;
return n;
}
33、函数swap(arr,n) 可完成对arr 数组从第一个元素到第n 个元素两两交换。在运行调用函数中的如下语句后, a[0]和a[1]的值分别为【1】________,原因是【2】________。a[0]=1,a[1]=2;
swap(a,2);
34、下面程序的运行结果是________。
#include<stdio.h>
main()
{
int i,x,y;
i=x=y=0;
do
{
++i;
if(i%2!=0)
{
x=x+i;
i++;
}
y=y+i++;
}
while(i<=7);
printf("x=%d,y=%d\n",x,y);
}
35、以下程序输出的结果是 ________。
int ff(int n)
{
static int f=l;
f=f*n;
return f;
}
main()
{
int i;
for(i=1;i<=5;i++) printf("%d\n",ff(i));
}
36、下列给定程序中,函数proc()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ascii码升序排序后输出。 例如,输入opdye,则应输出deopy。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
int proc(char str[])
{
char c;
unsigned i,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
c=str[j];
str[j]=str[i++];
str[i]=c;
}
}
void main()
{
char str[81];
system("cls");
printf("\nplease enter a character string:");
gets(str);
printf("\n\nbefore sorting:\n%s",str);
proc(str);
printf("\nafter sorting decendingly:\n %s",str);
}
37、数学表达式100<a或者a<-20改写为c语言表达式是________。注:表达式要在英文半角状态下按原表达式顺序书写,且表达式中不要留空格。
38、C语言源程序经过连接后,生成文件的后缀名是______。
39、函数的形参在未被调用前不分配空间,函数形参的____要和实参相同。
40、若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为______。