山东交通学院历年计算机C语言相关题目

本试卷为山东交通学院历年计算机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、定义4行3列的整型二维数组a的语句是________。
4、已有定义:double *p;
,请写出完整的语句,利用malloc函数使p指向一个双精度型 的动态存储单元 ________ 。
5、以下程序的功能是输出如下形式的方阵: 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 请填空。
main()
{
int i,j,x;
for(j=4; j ________ ; j--)
{
for(i=1; i<=4; i++)
{
x=(j-1)*4 + ________ ;
printf("%4d",x);
}
printf("\n");
}
}
6、现有两个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!则输出结果是:________。
7、有一输入函数scanf("%d",k);
则不能使用float变量k得到正确数值的原因是__________和____________。scanf语句的正确形式应该是:_____________。
8、字符读写函数____________是用于从磁盘文件中读出一个字符。
9、在c语言中,用转义字符 \\ 表示______________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行
10、结构化程序设计的3种基本结构是:顺序结构、选择结构、______结构,这三种基本结构构成了复杂的c语言程序。
11、在c语言中,在调用一个函数的过程中又出现__________或间接地调用该函数本身,这一现象称为函数的递归调用。
12、执行下列程序段后,输出的a的值是_____________。
main( )
{
int a = 2;
switch(a)
{
case 0: a--;
break;
case 1: a++;
break;
case 2: a=a+5;
break
}
printf("%d",a);
}
13、下列程序段的运行结果是_____。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[0]);
14、有函数调用fun1(x+y, (y,z), 10, fun((x,y-1)));
函数fun1有【1】个参数。
15、ferror函数用来检测文件读写时是否发生错误,若未发生读写错误,则返回值是________。
16、下列程序段的运行结果是_____。
main()
{
int n,s=0;
for(n=1;n<=6;n++)
{
if(n%3==0)continue;
s=s+n;
}
printf("%d\n",s);
}
17、在c语言中,如果采用printf函数将整个字符串一次输出,那么对应的格式控制符为"( )"。
18、设a=5,b=2,则表达式"!a+b"的值是________。
19、以下程序的输出结果为________。
main()
{
char m ,n ;
m=getchar();
/*(输入d)*/n=m-34;
printf("%c",n);
}
20、下列程序段的运行结果是________。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[2]);
21、下面程序的运行结果是________。
#include<stdio.h>
main()
{
int y=2,a=1;
while(y--!=-1)
{
do
{
a*=y;
a++;
}
while(y--);
}
printf("%d,%d",a,y);
}
22、局部变量又称内部变量,是在函数( )定义的变量。
23、编译预处理包括( )、文件包含、条件编译等。
24、main()
{
int a,b;
for (a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
}
程序的输出结果a的值为________。
25、定义二维数组int a[3][5];
,那么该数组中的第6个元素的访问形式为 ______。27. 在程序运行过程中,其值能被改变的量称为________。
26、将arr传参到子函数,接受处()内函数定义该怎么写?
27、从文件读入一行,读取字符包括空格,使用函数________。
28、在一个c 源程序中, 注释部分两侧的分界符分别为___和____。
29、在c 语言中的实型变量分为两种类型,它们是________和________。
30、下面程序的功能是求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);
}
31、下面程序的功能是生成并打印某数列的前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");
}
}
32、以下程序的运行结果是________。
#include <stdio.h>
main()
{
int x, y = -2, z = 0;
if ((z = y) < 0) x = 4;
else if (y == 0) x = 5;
else x = 6;
printf("\t%d\t%d\n", x, z);
if (z = (y == 0)) x = 5;
x = 4;
printf("\t%d\t%d\n", x, z);
if (x = z = y) x = 4;
printf("\t%d\t%d\n", x, z);
}
33、下列给定程序中,函数ptoc()的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头两个元素进行排序,然后把第3个字符插入前两个字符中,插入后前3个字符依然有序;
再把第4个字符插入前三个字符中,待排序的字符串已 在主函数中赋予。 请添加合适的语句____________,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
#define M 80
void proc(char*arr)
{
int i,j,n;
char ch;
n=strlen(arr);
for(i=1;i<n;i++)
{
ch=arr[i];
j=i-1;
while(______________)
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
void main()
{
char a[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("The original string:%s\n",a);
proc(a);
printf("The string after sortin9: %s\n\n",a);
}
34、下列给定程序中,函数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);
}
35、若运行以下程序时,从键盘输入adescriptor↙,则下面程序的运行结果是________。
#include <stdio.h>
void main()
{
char c;
int v0=0,v1=0,v2=0;
do
{
switch(c=getchar())
{
case’a’:
case’a’:
case’e’:
case’e’:
case’i’:
case’i’:
case’o’:
case’o’:
case’u’:
case’u’:v1+=1;
default:
v0+=1;
v2+=1;
}
}
while(c!=’n\’);
printf("v0=%d,v1= %d, v2= %d\n", v0, v1, v2);
}
36、请阅读下面的程序,当用户从键盘输入hello world时,分析程序是否能编绎通过并正确运行,如果不能,说明原因;
如果能,请写出运行结果。
void main()
{
char str[256];
scanf( );
printf( );
}
hello
37、C语言函数是由函数首部和函数体两部分组成。其中,函数首部包括 函数类型、函数名和______。
38、若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为______。
39、设y为int型变量,请写出描述“y是奇数”的表达式______。
40、在传值调用中,实际是把实参的______。