2022年自学考试《C语言程序设计》练习题及答案8
【3.36】下面函数的功能是将一个整数存放到一个数组中。存放时按逆序存放。例如:483存放成'384'。
#include
void convert(char*a,int n)
{int i;
if((i=n/10)!=0)
convert(①,i);
*a=②;
}
char str[10]='';
main()
{int number;
scanf('%d',&number);
convert(str,number);
puts(str);
}
【3.37】下面程序的功能是实现数组元素中值的逆转。
#include
main()
{int i,n=10,a[10]={1,2,3,4,5,6,7,8,9,10};
invert(a,n-1);
for(i=0;i<10;i++)
printf('%4d',a<i>);
printf('n');
}
invert(int*s,int num)
{int*t,k;
t=s+num;
while(①)
{k=*s;
*s=*t;
*t=k;
②;
③;
}
}
【3.38】下面程序通过指向整型的指针将数组a[3][4]的内容按3行×4列的格式输出,请给printf()填入适当的参数,使之通过指针p将数组元素按要求输出。
#include
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*p=a;
main()
{int i,j;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf('%4d',①);
}
}
【3.39】下面程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。
#include
main()
{char str[81],*sptr;
int i;
for(i=0;i<80;i++)
{str<i>=getchar();
if(str<i>=='n')break;
}
str<i>=①;
sptr=str;
while(*sptr)
putchar(*sptr②);
}
【3.40】下面函数的功能是将字符变量的值插入已经按ASCII码值从小到大排好序的字符串中。
void fun(char*w,char x,int*n)
{int i,p=0;
while(x>w[p])①;
for(i=*n;i>=p;i--)②;
w[p]=x;
++*n;
}
【程序填空题参考答案】
【3.36】答案:①a+1②n%10+'0'
针访问二维数组中的数据,必须将二维下标转换为一维下标。
【3.37】答案:①s
【3.38】答案;①*(p+4*i+j)
注释:p是一个一级指针,赋值后保存二维数组a的首地址,做加法运算加1时,实际地址增加一个它所指向的数据类型的长度。在C语言中,多维数组在计算机中是按行存储的,所以在本题中要通过指,进行字符串处理时,必须注意串结束标记'',它是在进行串处理时的最基本的要求,所以①中要填入''。为了使用putchar输出一个字符串,则必须有改变指针的运算,这里只能使用++运算。
【3.39】答案:①''或0②++
注释:在C语言中针访问二维数组中的数据,必须将二维下标转换为一维下标。
【3.40】答案:①p++②w[i+1]=w<i>
热门推荐:
自考有疑问、不知道如何选择主考院校及专业、不清楚自考当地政策,点击立即了解》》
推荐阅读: