2011年技能考试试卷C语言(真题)

2019-08-03 13:48

第一部分【程序填空】

第一套:

题目:函数gcd()计算整型数组a中相邻两元素的最大公约数,最小公倍数,其中最大公约数存入数组b中,最小公倍数存入数组c中。 --------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。 --------------------------------------------------------- #include #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 #include #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 #include int main(){

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 #include int main(){ int g,s,b,q; int num=0;

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 #include int main(){

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 #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 #include int LeapYear(int year){

/***********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


2011年技能考试试卷C语言(真题).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:山西省煤矸石综合利用实施方案摘编4

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: