吉林师范大学历年C语言期末试题

本试卷为吉林师范大学历年C语言期末试题,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言期末试题

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

1、若a和b 均为int 型变量,则以下语句的功能是________。 a+=b; b=a-b; a-=b;
2、c语言程序的基本单位是________。
3、一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:________ 。
4、c语言三个循环语句分别while语句、________语句和________语句。
5、以下函数sstrcat( )的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefgh。请填空。
void sstrcat(char *s, char *t)
{
int n;
n= strlen(s);
while (*(s+n)= ________ )
{
s++;
t++;
}
}
6、有以下程序
#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");
}
程序运行后的结果是________。
7、以下程序的功能是输入任意整数给n后,输出n行由大写字母a开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下: a b c d e f g h i j k l m n o 请填空完成该程序。
main()
{
int i,j,n;
char ch=′a′;
scanf("%d",&n);
if(n<11)
{
for(i=1;i<=n;i++)
{
for(j=1; j<=n-i+1;j++)
{
printf("%2c",ch);
________;
}
________;
}
}
else printf("n is too large!\n") printf("\n");
}
8、以下程序的输出结果是 ________ 。
main()
{
int a=0 a+=(a=8);
printf("%d\n",a);
}
9、下列程序运行结果是 ________ 。
#include <stdio.h>
#include <string.h>
struct a ( int a; char b[10]; double c; );
void f(struct a *t);
main()
{
struct a a={1001, "zhangda",1098.0};
f(&a);
printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct a *t)
{
strcpy(t->b,"changrong");
}
10、若有定义:int k;,以下程序段的输出结果是 ________。
for(k=2;k<6;k++,k++) printf("##%d",k);
11、在vc++编译环境下,c语言基本整型变量所占字节数是____。
12、执行下列程序段后,输出的a的值是_____________。
main( )
{
int a = 0;
switch(a)
{
case 0: a--;
break;
case 1: a++;
break;
case 2: a=a+5;
break
}
printf("%d",a);
}
13、语句主要是实现次数循环结构,while语句主要是实现当型循环结构。
14、若以下定义和语句,
struct
{
int day;
char month;
int year;
}
b;
要引用结构体类型变量成员day可以表示为【1】。
15、下列程序段的运行结果是_____。intb=20,*q;
q=&b; printf("%d",*q);
16、单精度型数据有效位为( )位。
17、已知a=5,则表达式"a+=a-=3"的值是________。
18、下列程序段的运行结果是________。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[2]);
19、以下程序的输出结果是 ________ 。
main()
{
int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);
}
20、在c语言中,用转义字符 \t 表示________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行
21、已知"float x=0.5;int y=13;",则算术表达式"x+y/5"的值是________。
22、在c语言中,将字符串中大写字母转换成小写字母的函数是______________。
23、执行下列的程序段后,正确的结果是_____________。
int i=5;
while( i = 1)i -- ;
printf("%d", i );
24、以下程序的运行结果是_____________。
main( )
{
int k, a[3][3]={1,2,3,4,5,6,7,8,9};
for( k=0;k<3;k ++)printf("%d,",a[k][k]);
}
25、以下程序运行的结果为()
#include <stdio.h>
int d = 1;
fun(int p)
{
int d = 5;
d += p++;
printf( "%d,", d);
}
void main()
{
int a = 3;
fun(a);
d += a++;
printf( "%d\n", d);
}
26、若有如下结构体说明:
struct stru
{
int a, b;
char c;
double d;
};
现在定义t数组,要求t数组的每个元素为该结构体类型,请填空:________stru t[20];
27、下列程序段的运行结果是_____。
struct st
{
longnum;
charname[20];
charsex;
floatscore;
}
w={1021103,"jiangping",'m',85.5};
main()
{
printf("%s\n",w.name);
}
28、一个c语言源程序由若干函数组成,其中至少应含有一个 ()
29、在c 语言中,输入操作是由库函数____完成的,输出操作是由库函数____完成的。
30、以下程序将输入的三个整数按从大到小顺序输出,请分析程序填空。
main()
{
int x,y,z,c;
scanf("%d%d%d",&x,&y,&z);
if(【1】________)
{
c=y;
y=z;
z=c;
}
if(【2】________)
{
c=x;
x=z;
z=c;
}
if(【3】________)
{
c=x;
x=y;
y=c;
}
printf("%d,%d,%d",x,y,z);
}
31、下面程序的功能是求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);
}
32、下面程序的功能是检查一个二维数组是否对称(即对所有i和j 都有a[i][j]=a[j][i] )。请分析程序填空。
main()
{
int i,j,found=0,a[4][4];
printf("enter array(4*4):\n");
for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);
for(j=0;j<4;j++)for( 【1】________;i<4;i++)if(a[j][i]!=a[i][j])
{
【2】________;
break;
}
if(found) printf("no");
else printf("yes");
}
33、以下程序的运行结果是________。
#include<stdio.h>
main()
{
int a=1,b=2,c;
c=max(a,b);
printf("max is %d\n",c);
}
max(int x,int y)
{
int z;
z=(x>y)?x:y;
return(z);
}
34、函数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;
}
35、以下程序的运行结果是________。
int i=0;
main()
{
int i=5;
reset(i/2);
printf("i=%d\n",i);
reset(i=i/2);
printf("i=%d\n",i);
reset(i/2);
printf("i=%d\n",i);
workover(i);
printf("i=%d\n",i);
}
workover(int i)
{
i=(i%i)*((i*i)/(2*i)+4);
printf("i=%d\n",i);
return i;
}
reset(int i)
{
i=i<=2?5:0;
return i;
}
36、C 语言中,一个函数一般由两个部分组成,它们是______和函数体。
37、函数的形参在未被调用前不分配空间,函数形参的____要和实参相同。
38、有如下函数头: int max(int i,int j),则此函数有______个参数。
39、在scanf函数中,用符号______表示变量的地址。
40、关系表达式x+y>5的相反表达式为______。