当前位置:首页 > c语言阅读程序题
for(m=1;m<4;m++)
printf(\ } }
9.以下程序运行后输出结果的第-行是__(11)_____,第二行是___(12)______ 。 extern int m1,m2;
void fun(int n,int *p1,int *p2) {int i;
*p1=1;*p2=1;
for(i=1;i<=n;i++){*p1+=3;*p2*=3;} m1+=*p1;m2+=*p2; }
int m1,m2; main()
{
int i,k1[4],k2[4];
for(i=0;i<4;i++)
fun(i,&k1[i],&k2[i]);
for(i=0;i<4;i++) printf(“%d,”,k1[i]); printf(“%d\\n”,m1);
for(i=0;i<4;i++) printf(“%d,”,k2[i]);
printf(“%d”,m2); }
完善程序题(共18分)
10.以下程序中函数encode完成一个字符串的加密功能,将s1字符串中的字符经过变换后保存到s2指向的字符数组中,二维数组cs保存了一个明码密码对照表,第一行是明码字符,第二行是对应的密码字符,加密方法如下:从s1字符串中每取一个字符,均在cs表第一行中查找有无该明码字符,若找到则将对应的密码字符放入s2中,否则将s1中原来的字符放入s2中。 #include
#include
char cs[2][10]={“aceghjlnp”,”fonptiude”};
void encode(char *s1, char *s2) {
int n,i,j;
for(n=0;s1[n]!=?\\0?;n++)
{
for(i=0;i<10&&s1[n]!=cs[0][i];_______(13)____) if(i<10) s2[n]=______(14)_____; else s2[n]=______(15)_______; }
s2[n]=?\\0?; }
main() {
char ts[80]=”jntwrnwt”, td[80]; encode(ts,td); puts(td);
}
11.以下程序依次输入某单位每位职工的姓名和工资数(整型数),然后计算发放工资时所需
发给每位职工的不同面值的纸币张数,并计算工资总和以及累计所需不同币值的张数 #include
struct{
char name[10]; /*姓名*/
int total; /*工资数*/
int mnum[7]; /*发放工资时所需不同币值的张数*/ }st[21];
int mvalue[7]={100,50,20,10,5,2,1}; main() {FILE *fp;
int n=0,i,j,wage;
fp=fopen(\ if(fp= =NULL)exit(1); while(!feof(fp))
{fscanf(fp,\ wage=st[n].total;
for(j=0;j<7&&wage;j++)
{st[n].mnum[j]=___(16)_________; wage= _____(17)______; }
_________(18)________; }
strcpy(st[n].name,\ for(i=0;i { st[n].total+=st[i].total; for(j=0;j<7;j++) st[n].mnum[j]+=_____(19)_______; } for(i=O;i {printf(\ for(j=0;j<7;j++) printf(\ } } 12.以下函数的功能是以十进制字符形式打印出任一int函数 #include \ void f(int n) {int i; if(n<0) {putchar('-');____(20)____;} if((_____(21)______)!=0)f(i); putchar(____(22)_______+'0'); } 13.以下程序中函数maxmin的功能是:对于x中存储的一个任意的四位整数,求出:(1)组成以这个整数的四个数字由大到小排列后构成的最大的四位数;(2)组成以这个整数的四个 数字由小到大排列后构成的最小的四位数。 #include void maxmin(int x,int *pmax,int *pmin) {int num[4],i,j,k,temp; *pmax=0;*pmin=0; for(i=0;i<4;i++) {num[i]=x;x=_____(23)_____;} for(i=O;i<3;i++) {k=i; for(j=i+1;j<4;j++) if(num[k] if(____(24)_____){temp=num[i];num[i]=num[k];num[k]=temp;} } for(i=0;i<4;i++) {*pmax=*pmax*10+____(25)____; /*生成最大的四位数*/ *pmin=*pmin*10+ _____(26)_______; /*生成最小的四位数*/ } } main() {int n=3169,max=0,min=O; maxmin(n,&max,&min); printf(\ } 14.设某链表上结点的数据结构定义如下: struct node{ int x; struct node *next; } 函数create的功能是:创建一个有序的链表(结点中x的值按升序排序),链表中结点 的个数为参数n的值,函数返回该有序链表的头指针。算法思想如下:每产生一个新的结点,插入到链表中的恰当位置,使得插入新结点以后的链表仍然保持有序 _______(27)_______create(int n) { struct node *p,*p1,*p2,*h=NULL; int i=0; if(n<1) return NULL; while(______(28)________) { p=(struct node *) malloc(sizeof(struct node)); scanf(“%d”,&p->x);p->next=NULL; if(h= =NULL)_______(29)____________; else {p1=p2=h; while(p2 &&p->x>=p2->x) {p1=p2;p2=p2->next;} if(p2==h){_____(30)____________;h=p;} else{p->next=p2;p1->next=p;} } i++; } return h; } (6)4 (7)8 (8)abcdef (9)1,3 (10)11,37 (11)1,4,7,10,2 (12)1,3,9,27,40 (13)i++ (14)cs[1][i] (15)s1[n] (16)wage/mvalue[j] (17)wage%mvalue[j] (18)n++ (19)st[i].mnum[j] (20)n=-n (21)i=n/10 (22)n (23)x/10 (24)i!=k (25)num[i] (26)num[3-i] (27)struct node * (28)i 改错题:(20分) 以下程序检查地名登记表,使每个地名只登记一次,并输出登记表内容 函数del_line删除s指向的n行字符串中重复出现的字符串,只保留第一次出现的字符串 若程序正确,运行后输出结果应为:shanghai beijing nanjing 含有错误的源程序如下: #include int del_line(char s[10][ ],int n) { int i,j,k; for(i=0;i
共分享92篇相关文档