长春师范大学C语言

本试卷为长春师范大学C语言,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言

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

1、在c语言中,二维数组元素在内存的存放顺序是________.
2、有以下程序
#include <stdio.h>
main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int b[3]={0},i;
for(i=0;i<3;i++) b[i]=a[i][2]+a[2][i];
for(i=0;i<3;i++) printf("%d",b[i]);
printf("\n");
}
程序运行后的结果是________。
3、有以下程序
#include <stdio.h>
#include <string.h>
void fun(char*str)
{
char temp;
int n,i;
n=strlen(str);
temp=str[n-1];
for(i=n-1;i>0;i--) str[i]=str[i-1];
str[0]=temp;
}
main()
{
char s[50];
scanf("%s",s);
fun(s);
printf("%s\n",s);
}
程序运行后输入:abcdef<回车>,则输出结果是________。
4、以下程序的输出结果是 ________ 。
main()
{
char *p="abcdefgh",*r;
long *q;
q=(long*)p;
q++;
r=(char*)q;
printf("%s\n",r);
}
5、利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用a表示,60-89分之间的用b表示,60分以下的用c表示。
6、有一输入函数scanf("%d",k);
则不能使用float变量k得到正确数值的原因是__________和____________。scanf语句的正确形式应该是:_____________。
7、ferror()用来检测文件读写时是否发生错误,若发生读写错误,则返回值是__________。
8、字符串函数________用于从指定的磁盘文件中读出一个字符串。
9、有以下程序
#include < stdio.h >
main()
{
int a=1,b=2,c=3,d=0;
if (a==1) if (b!=2) if(c!=3) d=1;
else d=2;
else if(c!=3) d=3;
else d=4;
else d=5;
printf("%d\n",d);
}
程序运行后的输出结果是: ________。
10、下面程序的运行结果是: ________
int f( int a[], int n)
{
if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main ( )
{
int aa[3]={1,2,3},s;
s=f(&aa[0],3);
printf("%d\n",s);
}
11、在c语言中,每个变量都具有存储类别属性。存储类别是指数据在内存中存储的方法。并且存储方法分为_______类。
12、在c语言中,标识符是由英文字母、数字、________组成的。
13、局部变量的作用域是从______的位置起,到函数结束止。
14、以下程序的输出结果是_____________。
main()
{
int x=-10, y;
if(x<0) y=-1;
else y=1;
printf("%d",y);
}
15、执行下面的程序段后,*p等于【1】。
int a[5]={1,3,5,7,9},*p=a; p++;
16、在c语言中,从参数的形式看,函数可以分为两类:无参函数和( )函数。
17、以下程序的输出结果为________。
main()
{
char m ,n ;
m=getchar();
/*(输入d)*/n=m-34;
printf("%c",n);
}
18、在c语言中,假使x为长整型变量,如果我们采用printf("格式控制",x)格式输出x,那么"格式控制"具体表示为"__"。
19、对于文件末尾检测函数feof(),如果文件指针未到文件末尾,则函数返回值是________。
20、在c语言中,对一维整型数组初始化时如果只给一部分元素赋初值,那么其他元素值均为________。
21、以下程序的输出结果是________。
main()
{
int x=5,y=6;
printf("%da%d",x――,――y);
}
22、下列程序段的运行结果是________。
main()
{
int a=5,b=6,c;
int sub(int , int);
c=sub(a , b);
printf("%d\n",c);
}
int sub( int x , int y )
{
int z;
z=x-y;
return z ;
}
23、main()
{
int a[5]={2,4,6,8,10},*p,* *k;
p=a;
k=&p;
printf("%d,",*(p++));
printf("%d\n",* *k);
}
程序的输出结果是________。
24、c语言中文件操作结束节后,必须关闭文件。而且关闭文件是通过调用________函数来实现。
25、要调用数学处理函数时,在
#include命令中应包含()头文件。
26、在c 语言中,输入操作是由库函数____完成的,输出操作是由库函数____完成的。
27、下面程序的功能是求1111的个、十、百位上的数字之和。请分析程序填空。
#include<stdio.h>
main()
{
int i,s=1,m=0;
for(i=1;i<=11;i++) s=s*11%1000;
do
{
m+= 【1】________;
s=【2】________;
}
while(s);
printf("m=%d\n",m);
}
28、下面程序的功能是生成并打印某数列的前20 项,该数列第1,2项分别为0 和1,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值。生成的20 个数存在一维数组x 中,并按每行4 项的形式输出。
main()
{
int x[21],i,j;
x[0]=0;
x[2]=1;
i=3;
do
{
x[i]= 【1】________;
x[i+1]= 【2】________;
i= 【3】________;
}
while (i<=20);
for (i=1;i<=20;i++)
{
printf("%5d",x[i]);
if (i%4==0)printf("\n");
}
}
29、以下程序的运行结果是【1】________,其算法是【2】________。
main()
{
int a[5]={5,10,-7,3,7},i,t,j;
sort(a);
for (i=0;i<=4;i++)printf("%3d",a[i]);
}
sort(int a[])
{
int i,j,k;
for (i=0;i<4;i++)for (j=0;j<4-i;j++)if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
30、函数swap(arr,n) 可完成对arr 数组从第一个元素到第n 个元素两两交换。在运行调用函数中的如下语句后, a[0]和a[1]的值分别为【1】________,原因是【2】________。a[0]=1,a[1]=2;
swap(a,2);
31、函数yahui 能够按以下形式构成一个杨辉三角形,请填空。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1⋯⋯⋯ ..
#define N 11
Yahui(int [][N])
{
int i,j;
for(i=1;i<N;i++)
{
a[i][1]=1;
a[i][i]=1;
}
for(【1】________;i<N;i++)
for(j=2; 【2】________;j++)
a[i][j]= 【3】________+a[i-1][j];
}
32、鸡兔同笼,头30,脚90,下面程序段计算鸡兔各有多少只。请分析程序填空。for(x=1;x<=30;x++ )
{
y=30-x;
if( 【1】________) printf("%d,%d",x,y);
}
33、有以下程序,程序执行后,输出结果是 ________ 。
#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");
}
34、float f=3.1415927;
printf("%f,%5.4f,%3.3f",f,f,f);
则程序的输出结果是________。
35、下面程序的功能是:输出 100以内(不包含100)能被 3整除且个位数为 6的所有整数,请填空。
main()
{
int i, j;
for(i=1; ________; i++) if (________) printf("%d", j);
}
36、请补充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);
}
37、以下程序对输入两个整数,按从大到小的顺序输出。请在____内填入正确的内容。
void main()
{
int x,y,z;
scanf("%d,%d",&x,&y);
if(_________)
{
z=x;
_________
}
printf("%d,%d",x,y);
}
38、C 语言对数组下标的引用一般从______开始。
39、构成数组的各个元素必须具有相同的______。
40、设y为int型变量,请写出描述“y是奇数”的表达式______。