第 13 頁:答案 |
(13)下面程序的功能是:對(duì)字符串從小到大進(jìn)行排序并輸出,請(qǐng)?zhí)羁铡?/P>
#include "string.h"
#include "stdio.h"
sort(char *a[],int n)
{ int i,j;
char *p;
for(j=1;j<=n-1;j++)
for(i=0; 【15】 ;i++)
if( 【16】 >0)
{ p=a[i];
a[i]=a[i+1];
a[i+1]=p;}}
main()
{ int i;
char *book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};
sort( 【17】 );
for(i=0;i<6;i++)
printf("%s\n",book[i]);}
解析: 這個(gè)題目其實(shí)用的是冒泡排序法,每一次都找一個(gè)最大的,之后順序的從頭開始排列。所以【15】是一次循環(huán)的判定條件,填i
(14)下面的函數(shù)是完成1~n的累加,完成函數(shù)。
a(int k)
{if(k<=0)printf("error\n");
if(k==1) 【18】 ;
else 【19】 ;}
解析: 由于題目沒有給循環(huán)語句,所以實(shí)現(xiàn)累加一定是用遞歸算法。
(15)閱讀下列程序,則程序?qū)崿F(xiàn)的功能是 【20】 。
#include "stdio.h"
struct node
{ char data;
struct node *next; } *head;
fun(struct node *q)
{ if(head == NULL)
{q->next=NULL;
head=q;}
else
{ q->next=head;
head=q;}}
main()
{char ch;
struct node *p;
head = NULL;
while((ch=getchar())!=′\n′)
{p=(struct node *)malloc(sizeof(struct node));
p->data=ch;
fun(p); }
p=head;
while(p!=NULL)
{printf("%c",p->data);
p=p->next; }}
解析: 本題目的功能是從鍵盤輸入一行字符,調(diào)用函數(shù)建立反序的鏈表,然后輸出整個(gè)鏈表,從主函數(shù)開始依次向下對(duì)程序進(jìn)行分析,分析初始化狀態(tài)的程序,之后再分析函數(shù)的功能。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |