第一部分【程序填空】
第一套:
题目:函数gcd()计算整型数组a中相邻两元素的最大公约数,最小公倍数,其中最大公约数存入数组b中,最小公倍数存入数组c中。 --------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。 --------------------------------------------------------- #include
void gcd(int a[],int n,int b[],int c[]){ int i,x,y,z;
/***********SPACE***********/ for(i=0;i<【?】;i++){ x=a[i]; y=a[i+1];
while(z=x%y){ x=y;y=z; }
b[i]=y;
/***********SPACE***********/ c[i]=a[i]*a[i+1]/【?】; } }
int main(){
int a[5]={8,12,5,7,14}; int b[4],c[4]; int i;
gcd(a,5,b,c); for(i=0;i<5;i++)
printf(\ printf(\ for(i=0;i<4;i++)
printf(\ printf(\ for(i=0;i<4;i++)
printf(\ printf(\ getch(); return 0; }
1
第二套
题目:函数reverse()对字符串str进行逆序。 #include
void reverse(char str[]){ int len, j; char c;
/***********SPACE***********/ len = 【?】(str);
/***********SPACE***********/ for (j=len-1; 【?】; j--){ c=str[j];
str[j]=str[len-1-j]; str[len-1-j]=c; } }
int main(){ char a[80];
printf(\ gets(a);
reverse(a);
printf(\ puts(a); getch(); return 0; }
第三套
题目:对主函数main()中数组a进行处理:如果相邻元素相同则保留一个。例如对数组a处理后,它的前11个元素为{-5,7,-4,25,0,2,4,16,8,5,20}。 #include
int a[20]={-5,-5,7,-4,-4,25,25,0,0,0,2,4,16,16,8,5,5,5,5,20}; int i,prev,next; prev=0; next=1;
while(next<20){
/***********SPACE***********/ if(a[prev]!=【?】)
2
a[++prev]=a[next]; next++; }
/***********SPACE***********/ for(i=0;i【?】prev;i++) printf(\ printf(\ getch(); return 0; }
第四套
题目:程序输出由0~3四个数字组成的符合下列条件的4位整数: 1. 每个4位整数中,0~3四个数字只能出现一次; 2. 百位数不能为3,十位数不能为2。 #include
for(b=0;b<4;b++){ if(b==3) continue; for(s=0;s<4;s++){
if((b==s)||(s==2)) continue; /***********SPACE***********/ for(q=【?】;q<4;q++){
if((q==b)||(q==s)) continue; /***********SPACE***********/ g=【?】-q-b-s;
printf(\ num++; } } }
printf(\ getch(); return 0; }
第五套
题目:在一维数组a中找出最大,最小元素,并将最大元素和数组最后一个元素交换,最小元素和数组首元素交换。
3
#include
int a[10]={15,8,12,6,10,1,4,5,9,-3}; int i,t,max_index,min_index; max_index=min_index=0; for(i=1;i<10;i++){
if(a[i]>a[max_index]) max_index=i; if(a[i]
t=a[0];a[0]=a[min_index];a[min_index]=t; /***********SPACE***********/ if(max_index==【?】){
t=a[min_index];a[min_index]=a[9];a[9]=t; } else{
/***********SPACE***********/ 【?】; }
for(i=0;i<10;i++)
printf(\ printf(\ getch(); return 0; }
=================================================================
第二部分【程序改错】
第一套
题目:主函数main()调用函数change()将二维数组strrow中的字符按列存入一维数组strcol中。下面给定的程序存在错误,请改正。 #include
/***********FOUND***********/ void change(char t[5][],char s[]){ int i,j;
for(j=0;j<5;j++) for(i=0;i<3;i++)
/***********FOUND***********/
4
s[3*j+i]=t[j][i];
/***********FOUND***********/ s[j]=0; }
int main(){
char strrow[][5]={{'C','r','r',' ','s'},{' ','o','a','T','t'},{'P','g','m','e','!'}}; char strcol[16];
change(strrow,strcol); puts(strcol); getch(); return 0; }
第二套
题目:在主函数中main()中输入年、月、日,然后计算该天是这一年的第几天。其中函数LeapYear()是判断某年是否为闰年。下面给定的程序存在错误,请改正。 #include
/***********FOUND***********/
return ((year%4==0 && year0) && (year@0==0)); }
int main(){ int
mon_days[2][11]={{31,28,31,30,31,30,31,31,30,31,30},{31,29,31,30,31,30,31,31,30,31,30}}; int year,mon,day,days; int i;
scanf(\ days=day;
/***********FOUND***********/ for(i=0;i /***********FOUND***********/ days=mon_days[LeapYear(year)][i]; printf(\ getch(); return 0; } 第三套 题目:主函数main()调用函数MyStrcat()将字符串src连接到字符串dstStr后面。下面给定的程序存在错误,请改正。 5 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库2011年技能考试试卷C语言(真题)在线全文阅读。
相关推荐: