c语言阅读程序题

发布时间 : 星期四 文章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 #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)inext=p2

改错题:(20分)

以下程序检查地名登记表,使每个地名只登记一次,并输出登记表内容 函数del_line删除s指向的n行字符串中重复出现的字符串,只保留第一次出现的字符串

若程序正确,运行后输出结果应为:shanghai beijing nanjing 含有错误的源程序如下: #include #include

int del_line(char s[10][ ],int n) {

int i,j,k;

for(i=0;i

联系合同范文客服:xxxxx#qq.com(#替换为@)