一、程序填空题
1、给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。
例如,有9个正整数:1 5 7 23 87 5 8 21 45
按升序排列时的中间数为:8
处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#defineN9
int fun(int x[])
{ int i,j,k,t,mid,b[N]
for(i=0i<Ni++) b[i]=x[i]
for(i=0i<=N/2i++)
{ k=i
for(j=i+1j<Nj++) if(b[k]>b[j]) k=j
if(k != i )
{
/**********found**********/
t=b[i]b[i]=___1___b[k]=t
}
}
/**********found**********/
mid=b[___2___]
for(i=0i<Ni++)
/**********found**********/
if(x[i] ___3___ mid) x[i]=mid
return mid
}
main()
{ int i, x[N]={1,5,7,23,87,5,8,21,45}
for(i=0i<Ni++) printf("%d ",x[i])
printf("\nThe mid data is: %d\n",fun(x))
for(i=0i<Ni++) printf("%d ",x[i])
printf("\n")
}
2、给定程序中,函数fun的功能是建立一个N×N的矩阵。 矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:
11111
12221
12321
12221
11111
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 7
/**********found**********/
void fun(int (*a) __1__)
{ int i,j,k,m
if(N%2==0) m=N/2
else m=N/2+1
for(i=0i<mi++) {
/**********found**********/
for(j= __2__ j<N-ij++)
a[i][j]=a[N-i-1][j]=i+1
for(k=i+1k<N-ik++)
/**********found**********/
a[k][i]=a[k][N-i-1]= __3__
}
}
main()
{ int x[N][N]={0},i,j
fun(x)
printf("\nThe result is:\n")
for(i=0i<Ni++)
{ for(j=0j<Nj++) printf("%3d",x[i][j])
printf("\n")
}
}
3、给定程序中,函数fun的功能是: 将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
void fun(char *s)
{ int i, j=0, k=0 char t1[80], t2[80]
for(i=0s[i]!='\0'i++)
if(s[i]>='0' &&s[i]<='9')
{
/**********found**********/
t2[j]=s[i]___1___
}
else t1[k++]=s[i]
t2[j]=0 t1[k]=0
/**********found**********/
for(i=0i<ki++) ___2___
/**********found**********/
for(i=0i<___3___i++) s[k+i]=t2[i]
}
main()
{ char s[80]="def35adh3kjsdf7"
printf("\nThe original string is : %s\n",s)
fun(s)
printf("\nThe result is : %s\n",s)
}
4、给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:
123
456
789计算结果为
100
650
10 14 9
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#defineN4
/**********found**********/
void fun(int (*t)___1___ )
{ int i, j
for(i=1i<Ni++)
{ for(j=0j<ij++)
{
/**********found**********/
___2___ =t[i][j]+t[j][i]
/**********found**********/
___3___ =0
}
}
}
main()
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j
printf("\nThe original array:\n")
for(i=0i<Ni++)
{ for(j=0j<Nj++) printf("%2d ",t[i][j])
printf("\n")
}
fun(t)
printf("\nThe result is:\n")
for(i=0i<Ni++)
{ for(j=0j<Nj++) printf("%2d ",t[i][j])
printf("\n")
}
}
5、给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。
例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
void fun(char *s, char *p)
{ int i, j, n, x, t
n=0
for(i=0s[i]!='\0'i++) n++
for(i=1i<n-2i=i+2) {
/**********found**********/
___1___
/**********found**********/
for(j=___2___+2 j<nj=j+2)
if(s[t]>s[j]) t=j
if(t!=i)
{ x=s[i]s[i]=s[t]s[t]=x}
}
for(i=1,j=0i<ni=i+2, j++) p[j]=s[i]
/**********found**********/
p[j]=___3___
}
main()
{ char s[80]="baawrskjghzlicda", p[50]
printf("\nThe original string is : %s\n",s)
fun(s,p)
printf("\nThe result is : %s\n",p)
}
6、程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
typedef struct
{ int num
char name[9]
char sex
struct { int year,month,day } birthday
float score[3]
}STU
/**********found**********/
void show(STU ___1___)
{ int i
printf("\n%d %s %c %d-%d-%d", tt.num, tt.name, tt.sex,
tt.birthday.year, tt.birthday.month, tt.birthday.day)
for(i=0i<3i++)
/**********found**********/
printf("%5.1f", ___2___)
printf("\n")
}
main( )
{ STU std={ 1,"Zhanghua",'M',1961,10,8,76.5,78.0,82.0 }
printf("\nA student data:\n")
/**********found**********/
show(___3___)
}
7、给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,有下列矩阵:
123
456
789fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#defineN4
fun(int t[][N], int n)
{ int i, sum
/**********found**********/
___1___
for(i=0i<ni++)
/**********found**********/
sum+=___2___
for(i=0i<ni++)
/**********found**********/
sum+= t[i][n-i-___3___]
return sum
}
main()
{ int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j
printf("\nThe original data:\n")
for(i=0i<Ni++)
{ for(j=0j<Nj++) printf("%4d",t[i][j])
printf("\n")
}
printf("The result is: %d",fun(t,N))
}
8、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。
例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000
主函数中输出:46 32 40 45 48
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdlib.h>
#include <stdio.h>
#define N 10
double fun(double x[],double *y)
{ int i,j double av
/**********found**********/
av=__1__
/**********found**********/
for(i=0i<Ni++) av = av + __2__
for(i=j=0i<Ni++)
/**********found**********/
if(x[i]>av) y[__3__]= x[i]
y[j]=-1
return av
}
main()
{ int i double x[N] = {46,30,32,40,6,17,45,15,48,26}
double y[N]
for(i=0i<Ni++) printf("%4.0f ",x[i])
printf("\n")
printf("\nThe average is: %f\n",fun(x,y))
for(i=0y[i]>=0i++) printf("%5.0f ",y[i])
printf("\n")
}
9、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000
移动后的输出为:30 6 17 15 26 46 32 40 45 48
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdlib.h>
#include <stdio.h>
#define N 10
double fun(double *x)
{ int i, j double av, y[N]
av=0
/**********found**********/
for(i=0i<Ni++) av +=__1__
单项选择题(每小题2分,共50分)
1、一个C程序的执行是从___A__。
A、本程序的main函数开始,到main函数结束
B、本程序的main函数开始,到本程序文件的最后一个函数结束
C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
2、C语言程序的基本单位是___C___。
A、程序行 B、语句
C、函数 D、字符
3、请选出可用作C语言用户标识符的一组标识符___B___。
A、void B、a3_b3 C、For D、2a
define _123 -abc DO
WORD IF ase sizeof
主要特点
C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。
以上内容参考:百度百科-c语言