齐齐哈尔大学计算机C语言

本试卷为齐齐哈尔大学计算机C语言,题目包括:填空题。

本卷包括如下题型:

一、填空题

计算机C语言

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

1、c语言中getchar() 函数的功能是 ________ 。
2、表达式 2.8 + 3/4 =________。
3、以下程序运行后的输出结果是________。
#include<stdio.h>
main() {
int a=200,b=010;
printf("%d%d\n",a,b);
}
4、以下程序运行后的输出结果是 ________ 。
main()
{
char c;
int n=100;
float f=10;
double x;
x=f*=n/=(c=50);
printf("%d %f\n",n,x);
}
5、已知字母a的ascii码为65。以下程序运行后的输出结果是 ________ 。
main()
{
char a, b;
a='a'+'5'-'3';
b=a+'6'-'2' ;
printf("%d %c\n", a, b);
}
6、以下程序的运行结果是 ________
#include <string.h>
typedef struct student
{
char name[10];
long sno;
float score;
}
stu;
main( )
{
stu a={"zhangsan",2001,95},b={"shangxian",2002,90}, c={"anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0) d=b;
if(strcmp(c.name,d.name)>0) d=c;
printf("%ld%s\n",d.sno,p->name);
}
7、有以下程序
#include <stdio.h>
typedef struct
{
int num;
double s;
}
rec;
void fun1(rec x)
{
x.num=23;
x.s=88.5;
}
main()
{
rec a={16,90.0};
fun1(a);
printf("%d\n",a.num);
}
程序运行后的输出结果是 ________。
8、c语言中对文件读写之前必须先打开文件,文件的打开是通过调用________函数来实现。
9、字符串函数________用于从指定的磁盘文件中读出一个字符串。
10、有int x=3,y=-4,z=5;
则表达式(x&&y)==(x||z)的值为 ________。
11、语句主要是实现次数循环结构,while语句主要是实现当型循环结构。
12、在循环的过程中,有时要提前中止循环,通常采用 () 语句。
13、编辑好一个程序文件后,在运行该程序文件之前先要进行________。
14、c语句分为______大类。
15、sacii中小写字母-(____)=大写字母
16、已知"float x=0.5;int y=8;",则算术表达式"(int)(x+y/5)"的值是________。
17、下列程序段的运行结果是________。
void sun()
{
int b=5;
}
main()
{
int b=1;
sun();
printf("b=%d",b);
}
18、下列程序段的运行结果是________。
main()
{
int n,s=0;
for(n=1; n<=5; n++)
{
if(n%2!=0) continue;
s=s+i;
}
printf("%d\n",n);
}
19、源程序的基本单位是【】。
20、若s 是int 型变量,则表达式s%2+(s+1)%2 的值为【】。
21、以下程序的运行结果是________。
main()
{
int a = 2, b = 3, c;
c = a;
if (a > b) c = 1;
else if (a == b) c = 0;
else c = -1;
printf("%d\n", c);
}
22、下面程序的运行结果是________。
#include<stdio.h>
main()
{
int i;
for(i=1;i<=5;i++)
switch(i%2)
{
case 0:
i++;
printf("#");
break;
case 1:
i+=2;
printf("*");
default:
printf("\n");
}
}
23、对于文件末尾检测函数feof(),如果文件指针未到文件末尾,则函数返回值是________。
24、以下程序的输出结果是________。
main()
{
int x=5,y=6;
printf("%da%d",x――,――y);
}
25、在c语言中,可以用/*…*/对c程序中的任何部分作______。
26、c语言的源程序拓展名为()编译后生成() 链接后生成()
27、下面程序的运行结果是________。
main()
{
int i,f[10];
f[0]=f[1]=1;
for(i=2;i<10;i++)f[i]=f[i-2]+f[i-1];
for(i=0;i<10;i++)
{
if(i%4==0) printf("\n");
printf("%3d",f[i]);
}
}
28、下面程序的功能是给一维数组a 任意输入6 个整数,假设为7 4 8 9 1 5,然后建立一个具有以下内容的方阵并打印。请分析程序填空。5 7 4 8 9 11 5 7 4 8 99 1 5 7 4 88 9 1 5 7 44 8 9 1 5 77 4 8 9 1 5main()
{
int a[6],i,j,k,m;
for(i=0;i<6;i++)scanf("%d",&a[i]);
for(i=5;i>=0;i--)
{
k=a[5];
for( 【1】________;j>=0;j--)a[j+1]=a[j];
【2】________;
for(m=0;m<6;m++)printf("%d ",a[m]);
printf("\n");
}
}
29、下面程序的功能是检查一个二维数组是否对称(即对所有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");
}
30、函数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;
}
31、函数swap(arr,n) 可完成对arr 数组从第一个元素到第n 个元素两两交换。在运行调用函数中的如下语句后, a[0]和a[1]的值分别为【1】________,原因是【2】________。a[0]=1,a[1]=2;
swap(a,2);
32、函数f 的形参a 为一个10×10 的二维数组, n 的值为5,以下程序段的运行结果为________。f(int a[][20], int n)
{
int i,j,k;
j=n/2+1;
a[1][j]=1;
i=1;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if(i<1&&j>n)
{
i=i+2;
j=j-1;
}
else
{
if(i<1) i=n;
if(j>n) j=1;
}
if(a[i][j]==0) a[i][j]=k;
else
{
i=i+2;
j=j-1;
a[i][j]=k;
}
}
}
main()
{
int a[20][20]={0},n,i,j;
scanf("%d",&n);
f(a,n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)printf("%3d",a[i][j]);
printf("\n");
}
}
33、请补充main()函数,该函数的功能是:把一个整数插入一个已经按从小到大排序的数组中。插入后,数组仍然有序。 例如,在数组bb[M]={10 20 30 40 50 60 70 80 85 95}
中插入75,结果为 bb[M]={10 20 30 40 50 60 70 75 80 85 95}
注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序:
#define M 10
void main()
{
int i,j;
int n;
int bb[M+1]={10,20,30,40,50,60,70,80,85,95};
system("CLS");
printf("\nlnput n n");
scanf("%d",&n);
printf("\nn=%d",n);
printf("\n***original list***\n");
for(i=0;i<M;I++) printf("%4d",bb[i]);
for(i=0;i<M;I++)
{
if(n<=bb[i])
{
for(j==M; ________ ;j--) ________ ;
bb[j]=n;
________ ;
}
}
if(i==M) bb[i]=n: printf("\n****new list****\n");
for(i=0;i<M+1;I++) printf("%4d",bb[i]);
}
34、改正下列程序中不正确的语句。
main( )
{
int a;
scanf("%d", a);
if (a = 1) printf("one\n") ;
}
35、改正下列程序中不正确的语句。
main()
{
int n ;
float s=1.0;
for(n=10;n>1;n--) s=s+1/n;
printf("%6.1f\n",s);
}
36、请阅读并分析以下程序,该程序的输出结果是:
#include <stdio.h>
main( )
{
int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++) switch(i%2)
{
case 0:switch(a[i]%2)
{
case 0:a[i]++;
break;
case 1:a[i]--;
}
break;
case 1:a[i]=0;
}
for(i=0;i<4;i++) printf("%d",a[i]);
printf("\n");
}
37、下面程序的输出结果是:
#include <stdio.h>
void add(int *p, int n)
{
int *pend = p + n;
for( ; p<pend; p++) *p += 10;
}
void main( )
{
int a[5]={1,2,3,4,5}, *q = a;
add(q, 5);
for(q=a; q < a+5; q++) printf("%4d", *q);
}
38、若x、y、z均为int型变量,则描述“x或y中有一个小于z”的表达式是______
39、在传值调用中,实际是把实参的______。
40、C标准库函数中,字符串的处理函数包含在______头文件中,数学函数包含在math.h头文件中。