安徽工业大学2023年C语言复习题

本试卷为安徽工业大学2023年C语言复习题,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言复习题

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

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、在c语言中,格式输入库函数为________,格式输出库函数为________。
3、以下程序运行后的输出结果是 ________ 。
char *ss(char *s)
{
char *p, t;
p=s+1;
t=*s;
while(*p)
{
*(p-1) = *p;
p++;
}
*(p-1)=t;
return s;
}
main()
{
char *p, str[10]="abcdefgh";
p = ss(str) ;
printf("%s\n",p);
}
4、以下程序用于判断a、b、c能否构成三角形,若能,输出yes,否则输出no。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。
main()
{
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
if(________)printf("yes\n");
/*a、b、c能构成三角形*/ else printf("no\n");
/*a、b、c不能构成三角形*/
}
5、现有两个c程序文件t18.c和myfun.c同在tc系统目录(文件夹)下,其中t18.c文件如下:
#include <stdio.h>
#include "myfun.c"
main()
{
fun();
printf("\n");
}
myfun.c文件如下:
void fun()
{
char s[80],c;
int n=0;
while((c=getchar())!=′\n′) s[n++]=c;
n--;
while(n>=0) printf("%c",s[n--]);
}
当编译连接通过后,运行程序t18时,输入thank!则输出结果是:________。
6、下面rotate函数的功能是:将n行n列的矩阵A转置为A’,例如: 1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14 当 A= 9 10 11 12 则 A’= 3 7 11 15 13 14 15 16 4 8 12 16 请填空
#define N 4
void rotate(int a[][N])
{
int i,j,t;
for(i=0;i<N;i++) for(j=0; ________;j++)
{
t=a[i][j];
________;
a[j][i]=t;
}
}
7、有一下程序
#include <stdio.h>
main()
{
int f,f1,f2,i;
f1=0;
f2=1;
printf("%d %d ",f1,f2);
for(i=3;i<=5;i++)
{
f=f1+f2;
printf("%d",f);
f1=f2;
f2=f;
}
printf("\n");
}
程序运行后的输出结果是 ________。
8、有一输入函数scanf("%d",k);
则不能使用float变量k得到正确数值的原因是__________和____________。scanf语句的正确形式应该是:_____________。
9、#include <stdio.h>
void main()
{
int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];
printf("%d\n",s);
}
10、字符读写函数____________是用于从磁盘文件中读出一个字符。
11、一个c程序总是从_____________函数开始执行的。
12、已有定义:char c=’ ‘;int a=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为 ________。
13、在c语言程序中,无论是一般磁盘文件还是设备文件,都可以通过文件结构类型的数据集合进行输入、输出操作。而且文件结构是由系统定义的,取名为_______。
14、在c语言中,数组元素的下标从__________开始的。
15、在c语言中,在调用一个函数的过程中又出现__________或间接地调用该函数本身,这一现象称为函数的递归调用。
16、以下程序的输出结果是________。
#inlcude <stdio.h>
main()
{
int c=67;
putchar(c+30);
}
17、读取文件的函数名是【1】。
18、下列程序段的运行结果是_____。
main()
{
int m=1,t=1;
for(;;)
{
m=m*t;
t++;
if(t>4)break;
}
printf("%d\n",m);
}
19、程序的结果是:
#include<stdio.h>
void main()
{
int i,j,x=0;
for(i=0;i<2;i++)
{
x++;
for(j=0;j<=3;j++)
{
if(j%2) continue;
x++;
}
x++;
}
printf("x=%d",x);
}
20、在c语言中,关系运算符中的"大于等于"表示为________。
21、局部变量的作用域是从定义的位置起,到( )结束止。
22、有以下程序
#include <string.h>
main()
{
char a[]={'a','b','\0'};
int j;
j=strlen(a);
printf("%d\n",j);
}
程序运行后的输出结果是________。
23、下列程序段的运行结果是________。
char a='m' ,*p ;
p=&a;
printf("%c",*p);
24、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为________。
25、若a 是int 型变量, 则表达式( a=4*5,a*2 ),a+6 的值为【】。
26、在c语言中,"a"在内存中占( )个字节。
27、下列程序段的运行结果是________。
main()
{
int m=1,t=1;
for( ; ; )
{
m=m+t ;
t++;
if(m>9) break ;
}
printf("%d\n",m);
}
28、在c语言中,函数的返回值是由___________语句传递的。
29、将arr传参到子函数,接受处()内函数定义该怎么写?
30、输入一个字符,如果它是大写字母,则把它变成小写字母,如果它是一个小写字母,则把它变成大写字母,其它字符不变。请分析程序填空。
main()
{
char ch;
scanf("%c",&ch);
if(【1】________) ch=ch+32;
else if(ch>='a'&&ch<='z') 【2】________;
printf("%c",ch);
}
31、函数swap(arr,n) 可完成对arr 数组从第一个元素到第n 个元素两两交换。在运行调用函数中的如下语句后, a[0]和a[1]的值分别为【1】________,原因是【2】________。a[0]=1,a[1]=2;
swap(a,2);
32、下列给定程序中函数fun()的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:l,1,2,3,5,8,13,21,… 例如,若给n输入7,则该项的斐波拉契数值为13。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构! 试题程序:
long fun(int g) (
switch(g);
{
case 0:
return 0;
case 1:case 2: return 1;
}
return(fun(g-1)+fun(g-2)); )
void main()
{
long fib;
int n;
printf("input n:");
scanf("%d",&n);
printf("n=%d\n",n);
fib=fun(n);
printf("fib=%d\nkn",fib);
}
33、请补充main()函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。结果仍然保存在原串中。 例如,输入"abcdefg",指定字符为"d",则输出"abe"。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序:
#define M 80
void main()
{
int i=0;
char str[M];
char ch;
system("CLS");
printf("\n Input a strin9:\n");
gets(str);
printf("\n Input a charator;\n");
scanf("%c",&ch);
while(str[i]!='\0')
{
if(str[i]==ch) ________ ________ ;
}
str[i]= ________ ;
printf("\n***display string***\n");
puts(str);
}
34、C语言中函数返回值的类型是由______决定的。
35、构成数组的各个元素必须具有相同的______。
36、若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为______。
37、设int a=12,则表达式a/=a+a 运算后,a的值是______。
38、已知函数定义为:int stat(int a,float *p),则此函数的两个参数类型分别是______、 浮点型。
39、C标准库函数中,字符串的处理函数包含在______头文件中,数学函数包含在math.h头文件中。
40、在C语言中,以______作为字符串结束标志。