C程序設(shè)計-計算機與通信工程學院_第1頁
C程序設(shè)計-計算機與通信工程學院_第2頁
C程序設(shè)計-計算機與通信工程學院_第3頁
C程序設(shè)計-計算機與通信工程學院_第4頁
免費預(yù)覽已結(jié)束,剩余116頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

ー、填空題給定函數(shù)intMySearch(char*str,char*s)的功能是:統(tǒng)計字符串s在字符串str中出現(xiàn)的次數(shù)。例如,若輸入字符串”1212312345"和"23",則應(yīng)輸出2(表示字符串"23"在字符串"1212312345"中出現(xiàn)了兩次)。若輸入字符串"33333"和"33",則應(yīng)輸出4(表示字符串"33"在字符串"33333"出現(xiàn)了四次)。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得到正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或者刪行,也不得修改程序的結(jié)構(gòu)。#include<conio.h>#include<stdio.h>#include<string.h>intMySearch(char*str,char*s){char*p;intn=0;for(;*str;)/***************found***************/if((p=strstr(str,s))!= 1 ){n++;str=p+l;}else/***************found***************/―2—;/***************found***************/return( 3 );}main()(charstrl[81],str2[21];printf('\nPleascenterstrlgets(strl);printf("\npleaseenterstr2:つ;gets(str2);printfl\n\n\%s\"are(is)appearedinstrl%dtimes'n”,str2,MySearch(strl,str2));}參考答案第一空:NULL第二空:*strニ0第三空:n試題解析:本題中,根據(jù)對函數(shù)MySearch()的源代碼分析可知,其算法為通過一個循環(huán)來逐個判斷s是否在str中存在,如果存在,則將計數(shù)器累加1,并在str剩余的子串中繼續(xù)判斷s是否存在,直到str判斷結(jié)束或者s沒有在str剩余子串中存在為止。在C語言中,函數(shù)strstr(str,s)的功能是,判斷s是否在str中存在,如果存在返回具體的地址,如果不存在則返回NULL,從函數(shù)中For語句內(nèi)的If下--條語句{n++;str=p+1;}可知,當If判斷條件不等于NULL,也就是說在str字符串中存在了s子串時,n要累加1。由此可知第一空為NULLo而當If條件不成立時,執(zhí)行Else后的語句,則此時應(yīng)當結(jié)束For循環(huán),則可以為?str=0或者其等效答案。函數(shù)MySearchO的功能是求得字符串s在str中出現(xiàn)的次數(shù),而在函數(shù)中內(nèi)存變量n來存儲相應(yīng)的次數(shù),則函數(shù)應(yīng)該返回n。由此可知第三空所在行語句可以為Return(n);給定函數(shù)char*MyDelete(char*str,charc)的功能是:在字符串str中刪除變量c中的字符,有幾個刪幾個,并返回所刪字符的個數(shù)。例如,若輸入字符串"ababcbcdef"和字符'b',則應(yīng)輸出字符串"aaccdef"和3(表示刪了3個字符’b')。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得到正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或者刪行,也不得修改程序的結(jié)構(gòu)。#include<conio.h>#include<stdio.h>intMyDelete(char*str,charc)(inti,j=0,k=0;for(i=0;str[i];i++)if(str[i]!=c)/***************found**************/TOC\o"1-5"\h\z{str[j]=str[i]; 1 ; }elsek++;/***************found**************/str[j]= 2 ;/***************found**************/return( 3 );)main(){charstring[81],x;clrscr();printf('\nPleaseenterastring:\n*);gets(string);printf(\nPleaseenteracharacter:つ;scanf&x);printf('\n\nAfterdeleting%d'%c'(s),thestringbecomes:\n%s\n*,MyDelete(string,x),x,string);}參考答案第一空:j++第二空:〇第三空:k試題解析:本題要求在程序的下劃線處添加適當?shù)恼Z句完成程序,這種模式在編程題目來說比較容易,關(guān)鍵是在于?定要分清題意并対系統(tǒng)提供的程序算法有清晰的理解。主函數(shù)Min的作用是通過犍盤輸入一個字符串和一個要在字符串中刪除的字符,調(diào)用函數(shù)MyDelete并打印結(jié)果。MyDelete函數(shù)中首先定義了三個整形變量i,j,k,通過循環(huán)For,str[i]可以遍歷字符串的每ー個字符,當str[i]中的字符和c所表示的字符不相等的時候,就把當前str[i]的字符賦給str[j],然后str[i]調(diào)用字符串的下ー個字符,str[j]指向字符串的下ー個位置等待賦值,所以第一空應(yīng)填寫j++;當str[i]中的字符和c所表示的字符相等的時候,計數(shù)器k加1:當字符串所有字符遍歷后,給新的字符串添加結(jié)束符‘、0’或0x00,所以第二空填寫、〇’或0x00:通過主函數(shù)可以知道MyDelete函數(shù)返回的是刪除字符的個數(shù),也就是k的值。3、給定程序中已建立一個帶有頭結(jié)點的單向鏈表,鏈表中的各結(jié)點按結(jié)點數(shù)據(jù)域中的數(shù)據(jù)從小到大順序鏈接。函數(shù)fun的功能是:把形參x的值放入一個新結(jié)點并插入到鏈表中,插入后各結(jié)點仍保持從小到大順序排列。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得到正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或者刪行,也不得修改程序的結(jié)構(gòu)。#include <stdio.h>^include <stdlib.h>^defineN8typedefstructlist{intdata;structlist*next;}SLIST;voidfun(SLIST*h,intx){SLIST*p,*q,*s;s=(SLIST*)malloc(sizeof(SLIST));/**********foiind**********/s->data= 1 ;q=h;p=h->next;while(p!=NULL&&x>p->data){/**********found**********/q=—2—;p=p->next;}sー)next=p;/**********found**********/q->next= 3 ;}SLIST*creatlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;i<N;i++){q=(SLIST*)malloc(sizeof(SLIST));q->data=a[i];p->next=q;p=q;)p->next=O;returnh;voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printfC\nThelistisNULL!\n");else{printf("\nHead");do{printf("ー)%d”,p->data);p=p-〉next;}while(p!=NULL);printf('ー〉End\n");)}main(){SLIST*head;intx;inta[N]={ll,12,15,18,19,22,25,29);head=creat1ist(a);printf("\nThelistbeforeinserting:\nz,);outlist(head);printf("\nEnteranumber:");scanf("%d",&x);fun(head,x);printf("\nThelistafterinserting:\n");outlist(head);}參考答案第一空:x第二空:p第三空:s試題解析:本題中的fun函數(shù)主要功能是:把形參x的值放入一個新結(jié)點并插入到鏈表中,插入后各結(jié)點仍保持從小到大順序排列。語句“s=(SLIST*)malloc(sizeof(SLIST))的功能是把s初始化成SLIST類型的變量。因此s即為要插入的結(jié)點,s的值域即為x,第一個空應(yīng)填“ズ。循環(huán)語句的執(zhí)行條件是鏈表結(jié)點不為空并且x的值大于鏈表當前結(jié)點的值。當循環(huán)條件成立時,指針q與p均后移。由于P總是指向P的前ー個結(jié)點,因此第二個空應(yīng)填“P”。循環(huán)結(jié)束后,應(yīng)插入結(jié)點s,一般來說對于單向鏈表插入結(jié)點可用下列示意圖完成:Iq Ip|dataInext-| >|data|next"| > IdataInext第一步:

IdataInextH >|data|next-|—> IdataInext ~~1第二步:IdataIIdataInext?廠〉IdataInext| ->L>IdataInext-|-1完成結(jié)點插入。因此第三個空應(yīng)填s〇給定程序的功能是:調(diào)用函數(shù)fun將指定源文件中的內(nèi)容復(fù)制到指定的冃標文件中,復(fù)制成功時函數(shù)返回值為1,失敗時返回值為〇。在復(fù)制過程中,把復(fù)制的內(nèi)容輸出到終端屏幕。主函數(shù)中源文件名放在變量sfname中,目標文件名放在變量tfname中。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增加或者刪除行,也不得更改程序的結(jié)構(gòu)!#include <stdio.h>^include <stdlib.h>intfun(char*source,char*target){FILE*fs,*ft;charch;/**********found**********/if((fs=fopen(source, 1 ))==NULL)return0;if((ft=fopen(target,"w"))==NULL)return0;printf(*\nThedatainfile:\n");ch=fgetc(fs);/**********found**********/while(!feof( 2 )){putchar(ch);/**********found**********/fputc(ch, 3 );ch=fgetc(fs);fclose(fs);fclose(ft);printf('\n\n");return1;main(){charsfname[20]="myfilel”,tfname[20]="myfile2”;FILE*myf; inti;charc;myf=fopen(sfname,w);printf("\nTheoriginaldata:\n");for(i=l;i<30;i++){c='A'+rand()%25;fprintf(myf,"%c”,c);printf("%c",c);}fclose(myf);printf("\n\n");if(fun(sfname,tfname))printf("Succeed!”);elseprintf("Fail!");|參考答案第一空:"r"第二空:fs第三空:ft試題解析:本題考査考生對文件指針的掌握。函數(shù)fun的功能是:將指定源文件中的內(nèi)容復(fù)制到指定的冃標文件中,復(fù)制成功時函數(shù)返回值為1,失敗時返回值為〇。在復(fù)制過程中,把復(fù)制的內(nèi)容輸出到終端屏幕。字符型指針source指向源文件名,字符型指針target指向冃標文件名。源程序中第一空所在語句是對文件指針的初始化。函數(shù)fopen的格式為:fopen(文件名,文件使用方法)由于文件source是用來讀數(shù)據(jù)的,因此第一個空應(yīng)填"r"。函數(shù)fun中循環(huán)語句執(zhí)行的條件是文件沒有結(jié)朿。函數(shù)feof()的格式為:feof(文件指針)因此使用語句“while(!feof(fs)^^,第二空填“fs”。函數(shù)fun中while循環(huán)體中的語句的功能是把源文件中的字符復(fù)制到目標文件中。第三空的功能是將變量ch中的字符寫入目標文件。函數(shù)fputc()的格式為:fputc(待輸入的內(nèi)容,文件指針)因此第三個空應(yīng)填“ft”。給定程序的功能是:從犍盤輸入若干行文本(每行不超過80個字符),寫到文件myfile4.txt中,用ー1作為字符串輸入結(jié)束的標志。然后將文件的內(nèi)容讀出顯示在屏幕上。文件的讀寫分別由自定義函數(shù)ReadText和WriteText實現(xiàn)。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>^include<string.h>ttinclude<stdlib.h>voidWriteText(FILE*);voidReadText(FILE*):main(){FILE*fp;if((fp=fopen("myfile4.txt","w"))=NULL){printf(*openfail!!\n*);exit(0);}WriteText(fp);fclose(fp);if((fp=fopen(*myfile4.txt*,*r*))=NULL){printf(*openfail!!\n*);exit(0);}ReadText(fp);fclose(fp);}/**********found**********/voidWriteText(FILE—1—){charstr[81];printf(*\nEnterstringwith-1toend:\n");gets(str);while(strcmp(str,"T")!=0){/**********found**********/fputs( 2 ,fw);fputs('\n",fw);gets(str);)}voidReadText(FILE*fr){charstr[81];printf<\nReadfileandoutputtoscreen:\n");fgets(str,81,fr);while(!feof(fr)){/**********found**********/printf("畑", 3 );fgets(str,81,fr);參考答案第一空:*fw第二空:str第三空:str試題解析:本題考查考生對文件讀寫的掌握。函數(shù)ReadText的功能是將鍵盤輸入的若干行文本(每行不超過80個字符),寫到文件myfile4.txt中:函數(shù)WriteText的功能是將文件的內(nèi)容讀出顯示在屏幕上。WriteText函數(shù)的形參變量是文件的指針,因此函數(shù)的定義語句應(yīng)使用voidWriteText(FILE*fw),即第一個空應(yīng)填入“*fw”。在WriteText函數(shù)中,循環(huán)語句的功能是當輸入的字符串不為“T”時,則將字符串寫入文件中。源程序中使用語句‘'fputs(__2fw);"完成將字符串str寫入文件。因此,第二個空應(yīng)填入''str”。輸出文件的函數(shù)中的循環(huán)語句的功能是:當文件未結(jié)束時,從文件中讀出字符,放入變量str中,再將變量str的值輸出。因此第三個空應(yīng)填入''str”。6、給定程序的功能是:調(diào)用fun函數(shù)建立班級通訊錄。通訊錄中記錄每個學生的編號、姓名和電話號碼。班級的人數(shù)和學生的信息從鍵盤讀入,每個人的信息作為?個數(shù)據(jù)塊寫到myfile5.dbf的二進制文件中。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!^include<stdio.h>#include<stdlib.h>^defineN5typedefstruct{intnum;charname[10];chartel[10];}STYPE;voidcheck();/**********found**********/intfun( 1 *std){/**********found**********/_2_*fp;inti;if((fp=fopen("rnyfile5.dat","wb"))ニニNULL)return(0);printf("\n0utputdatatofile!\n");for(i=0;i<N;i++)/**********found**********/fwrite(&std[i],sizeof(STYPE),1, 3 );fclose(fp);return(1);}main(){STYPEs[10]=({ljaaaaa","111111”},{2,"bbbbb","222222”},{3,"ccccc","333333”},{4,"ddddd","444444”},{5,"eeeee","555555”}};intk;k=fun(s);if(k==l){printf("Succeed!");check();}elseprintf("Fail!”);)voidcheck(){FILE*fp;inti;STYPEs[10];if((fp=fopen(*myfile5.dat","rb"))ニニNULL){printf("Fail!!\n");exit(0);}printf("\nReadfileandoutputtoscreen:\n");printf(*\nnumnametel\n");for(i=0;i<N;i++){fread(&s[i],sizeof(STYPE),1,fp);printf("%6d %s%s\n*,s[i].num,s[i].name,s[i].tel);}fclose(fp);}參考答案第一空:STYPE第二空:FILE第三空:fp試題解析:fun函數(shù)的功能是將鍵盤讀入的每個結(jié)構(gòu)體型數(shù)據(jù),作為ー個數(shù)據(jù)塊寫到myfile5.dbf文件中。fun函數(shù)的形參是結(jié)構(gòu)體型的指針變量,結(jié)構(gòu)體的類型名是STYPE。因此在定義函數(shù)時應(yīng)使用語句“intfun(STYPE*std)”,即第一個空應(yīng)填入STYPE。從語句‘'fp=fopen("myfile5.dat","wb”)"可以看出“*fp”為文件指針變量,fun函數(shù)中定義文件指針變量的語句應(yīng)為“FILE*fp;",因此第二個空應(yīng)填入FILE。對文件的寫操作是通過對文件指針的操作來完成的。fwrite函數(shù)的參數(shù)中,第一個是要寫入的數(shù)據(jù)塊的地址,第二個是要寫的字節(jié)數(shù),第三個是要寫入的數(shù)據(jù)塊的個數(shù),第四個是要寫入的文件的指針。因此第三個空應(yīng)填入y文件指針“fp”。給定程序的功能是用冒泡法對6個字符進行排序。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#defineMAXLINE20fun(char*pstr[6]){inti,j;char*p;for(i=0;i<5;i++){for(j=i+1;j<6;j++){TOC\o"1-5"\h\z/**************found**************/if(strcmp(*(pstr+i),1 )>0)(p=*(pstr+i);/**************fotind**************/pstr[i]= 2 ;/**************found**************/?(pstr+j)= 3 ;)}})main(){inti;char?pstr[6],str[6][MAXLINE];for(i=0;i<6;i++)pstr[i]=str[i];printf("\nEnter6string(lstringateachline):\n");for(i=0;i<6;i++)scanfpstr[i]);fun(pstr);printf("Thestringsaftersorting:\n"):for(i=0;i<6;i++)printf("%s\n",pstr[i]);}參考答案第一空:*(pstr+j)或pstr[j]第二空:*(pstr+j)或pstr[j]第三空:p試題解析:本題考查了考生對冒泡排序算法的掌握。fun函數(shù)的主要功能是將字符串pstr中的字符按照從小到大的順序進行排序。程序中的冒泡排序法是用二重循環(huán)遍歷字符串數(shù)組,將外重循環(huán)的當前字符串與內(nèi)重循環(huán)的當前字符串進行比較,若前者大于后者,則二者相互交換,否則不操作。根據(jù)對源程序的分析可知:語句strcmp(*(pstr+i),1)的功能是比較內(nèi)外循環(huán)當前字符串的大小。因此第一個空應(yīng)填入?(pstr+j)或pstr[j],二者均是對二維數(shù)組元素的引用。函數(shù)fun中if語句的條件成立時,應(yīng)將兩個字符串的內(nèi)容相互交換。此時引入中間變量p,既然有語句p=*(pstr+i);存在,則其下兩條語句必然是將*(pstr+j)和pstr[i]的值進行更新,這樣非常容易得到后兩空的答案。給定程序的功能是將十進制整數(shù)m轉(zhuǎn)換成k進制(2Wkく9)數(shù)的數(shù)字輸出。例如,如果輸入8和2,則應(yīng)該輸出100〇。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!ttinclude<stdio.h>voidfun(intm,intk)(intaa[20],i;for(i=0:m:i++){/**********fourid**********/aa[i]= 1 ;/**********fourid**********/m/=—2—;}for(;i;i-)/**********found**********/printf("%d",—3_[i-l]);}main()intb,n;printf(*\nPleaseenteranumberandabase:\n);scanf("%d%d”,&n,&b);fun(n,b);}'參考答案第一空:m%k第二空:k第三空:aa試題解析:本題考查考生對十進制與k進制數(shù)轉(zhuǎn)換的掌握。fun函數(shù)的功能是將十進制數(shù)m除以進制數(shù)k。余數(shù)放在數(shù)組aa中,商放在m中繼續(xù)進行除操作,直至加為0。數(shù)組aa中的數(shù)按照逆序輸出即為所求k進制的值。通過對源程序的分析可知:函數(shù)fun的形參m和k分別傳遞了需要轉(zhuǎn)換的數(shù)利進制數(shù),數(shù)組aa用來存放余數(shù)。程序通過for循環(huán)來逐個完成進制的轉(zhuǎn)換,每次求余后,都將商存放到m中,直到m的值為O,結(jié)束循環(huán)。因此在循環(huán)體內(nèi)m需要重新賦值為m/k,而a[i]為m%k。根據(jù)題目要求和對源程序的分析:函數(shù)fun中,printf語句的功能是逆序輸出數(shù)組aa的各元素值,因此第三個空應(yīng)填入“aa”。給定程序的功能是將未在字符串s中出現(xiàn)、而在字符串t中出現(xiàn)的字符,形成一個新的字符串放在u中,u中字符按原字符串中字符順序排列,但是去掉重復(fù)字符。例如:當s="12345",t="24677”時,u中的字符為"67”。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#include<string.h>voidfun(char*s,char*t,char*u){inti,j,si,tl,k,ul=0;si=strlen(s);tl=strlen(t);for(i=0;i<tl;i++){for(j=0;j<sl;j++)if(t[i]=s[j])break;if(j>=sl){for(k=0;k<ul;k++)/************found************/if(t[i]==u[k]) 1 ;if(k>=ul)/************found************/u[ul++]=_2_;/************found************/'_3_='、O’;}main(){chars[100],t[100],u[100];printf(z/\nPleaseenterstrings:");scanfl'%s,s);printf("\nPleaseenterstringt:");scanf("畑",t);fun(s,t,u);printf("Theresultis:%s\n",u);}參考答案第一空:break第二空:t[i]第三空:u[ul]試題解析:本題考查考生對字符串的操作的掌握。fun函數(shù)的功能是:將未在字符串s中出現(xiàn)、而在字符串t中出現(xiàn)的字符,形成一個新的字符串放在u中,u中字符按原字符串中字符順序排列,但是不能有重復(fù)字符。本題中所有的空都在函數(shù)fun中,下面僅僅對fun函數(shù)的程序進行分析:二層循環(huán)的第一個for循環(huán)中,查找滿足“未在字符串s中出現(xiàn)、而在字符串t中出現(xiàn)“條件的字符。若滿足本條件則執(zhí)行if(j>=sl)語句段。循環(huán)語句“for(k=0;k<ul;k++)if(t[i]==u[k]),>功能是遍歷字符串u,若u中含有與t[i]相同的字符,則說明雖然t[i!滿足在字符串t中出現(xiàn),并不在字符串s中出現(xiàn)的要求,但是未滿足不能重復(fù)的條件,所以不需要將t[i]連接到u,則應(yīng)跳出循環(huán)不再執(zhí)行其后的循環(huán)體語句,即第一個空應(yīng)填入“break"。若字符串u中不含有與t[i]相同的字符,則應(yīng)在字符串的最后連接字符t[i],即將u[ul]的值為t[i]?所以第二個空應(yīng)填t[i]。當將所有滿足條件的字符放到u中后,應(yīng)在最后插入字符串的結(jié)束標志‘、0’。由于第二空所在語句執(zhí)行后,ul會加1,因此當程序流程執(zhí)行后第三空所在語句時,ul實際上是u中最后一個字符之后元素的下標,所以第三空為:u[ul]?給定程序的功能是將在字符串s中下標為奇數(shù)位置上的字符,緊隨其后重復(fù)出現(xiàn)一次,放在ー個新串t中,t中字符按原字符串中字符出現(xiàn)的逆序排列(注意〇為偶數(shù))。例如:當s="23516",t="1133",請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!^include<stdio.h>^include<string.h>voidfun(char*s,char*t){inti,j,si;si=strlen(s);/************found************/if(sl%2)sl-=2;_1_si—:/************found************/for(i=sl,j=_2—;i>=0;i-=2){t[2*j]=s[i]:/************fourid************/t[2*j+1]=—3—;j++;t[2*j]='\0*:main(){chars[100],t[100];printf('\nPleaseenterstrings:");scanf〈‘%s,s);fun(s,t);printf(*Theresultis:%s\n”,t);}參考答案第一空:else第二空:〇第三空:s[i]或t[2*j]試題解析:本題考查字符串的遍歷。根據(jù)對試題要求和源程序的分析可知fun函數(shù)的功能是:將在字符串s中下標為奇數(shù)位置上的字符緊隨其后重復(fù)出現(xiàn)一次,放在ー個新串t中,t中字符按原字符串中字符出現(xiàn)的逆序排列。根據(jù)題目提供的例子可知:這里的奇數(shù)位置,實際意思為奇數(shù)ド標。fun函數(shù)中第一個if語句的功能是判斷字符串長度的奇偶性,在這里s!為字符串的長度,而在其后的for語句中,si作為最大奇數(shù)下標,而對于數(shù)組來說,最后ー個元素下標值為其長度減去1(因為數(shù)組最小下標為〇)。所以當字符串長度si為奇數(shù)時,表示最后一個元素下標為偶數(shù),因此最后一個奇數(shù)下標的值為sl-2。若為偶數(shù),則從字符串的倒數(shù)第一個字符開始遍歷,這時最后一個奇數(shù)下標值為sl-1(程序中描述為si-)〇因此,第一個空應(yīng)填入“else”。循環(huán)語句中的i為字符串s的下標,j為字符串t的下標,因為t中字符從前往后賦值。因此第二個空應(yīng)填入“〇”,即字符串t從〇開始遍歷。在這里應(yīng)該注意:程序中一次給t中相鄰的兩個位置賦值,所以第二次賦值的位置應(yīng)該是第一次的2倍,即2*j。每找到一個符合條件的字符,就對t的下標緊挨著的兩個字符賦值。因此第三個空應(yīng)填入“s[i]”或“t[2*j]”。給定程序的功能是將大寫字母轉(zhuǎn)換為對應(yīng)的小寫字母后的第五個字母;若小寫字母為v?z,使小寫字母的值減去21。轉(zhuǎn)換后的小寫字母作為函數(shù)值返回。例如,若形參是字母A,則轉(zhuǎn)換為小寫字母f:若形參為字母W,則轉(zhuǎn)換為小寫字母b。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#include<string.h>voidfun(char*s,char*t){inti,j,si;si=strlen(s);/************found************/if(sl%2)sl-=2;—1—si—;/************found************/for(i=sl,j=_2—;i>=0;i-=2){t[2*j]=s[i];/************found************/t[2*j+1]=—3—;j++;}t[2*j]=、0’;)main(){chars[100],t[100];printf("\nPleaseenterstrings:");scanf('s”,s);fun(s,t);printf("Theresultis:%s\n”,t);}參考答案第一空:5第二空:c第三空:cl試題解析:本題考查對字符變量的操作。fun函數(shù)的主要功能是:將大寫字母轉(zhuǎn)換為對應(yīng)的小寫字母后的第五個字母;若小寫字母為v~z,使小寫字母的值減去21。轉(zhuǎn)換后的小寫字母作為函數(shù)值返回。fun函數(shù)的第二個if語句的功能是判斷字符是否在“a”到“u”之間,如果條件成立則把字符轉(zhuǎn)換為其小寫字母后的第五個字母,如果字符不符合上面條件,且字符在v~z之間,則減21。因此,第一個空應(yīng)填入“5”。轉(zhuǎn)換完成,則函數(shù)的返回值為字符變量c,因此第二個空應(yīng)填入c。主函數(shù)中的函數(shù)調(diào)用語句為“c2=fun(_3—)fun函數(shù)的形參變量只有一個字符串變量,根據(jù)函數(shù)調(diào)用原則和本題源程序,第三個空應(yīng)填入cl〇給定程序的功能是計算s=f(-n)+f(-n+l)+...+f(0)+f(l)+f(2)+...f(n)的值。例如,當n為5時,函數(shù)值應(yīng)該為:10.407143。「&+D/a-2) x>0£&)=T0 x=0或x=2x<0請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>^include<math.h>floatf(doublex)(if(x=0.011x=2.0)/************found************/return 1 ;elseif(x<0.0)return(x-l)/(x-2):elsereturn(x+1)/(x-2);doublefun(intn){inti;doubles=0.0,y;/************found************/for(i=-n;i<= 2_;i++){y=f(1.0*i);s+=y;}/************found************/return3 :)main()(printf("%f\n”,fun(5)):|參考答案第一空:〇第二空:n第三空:s試題解析:本題考査函數(shù)的定義、調(diào)用、以及返回值的處理。函數(shù)f是ー個分段函數(shù),x的取值所在的范圍不同,函數(shù)的返回值就不同。因此首先要對X值的范圍進行判斷。根據(jù)題目要求可知,當x=0.0或x=2.0時,函數(shù)f的返回值為0,因此第一個空應(yīng)填入“〇”。fun函數(shù)的功能是計算并返回s的值。由題目Ms=f(-n)+f(-n+l)+...+f(O)+f(l)+f(2)+...f(n)”可知s的值為f函數(shù)的參數(shù)從-n到n取值時的累加和。因此第二個空和第三個空分別填入''n"和“s”。10、給定程序的功能是求二分之一的圓面積,函數(shù)通過形參得到圓的半徑,函數(shù)返回二分之一的圓面積。例如輸入圓的半徑值為:19.527輸出為:s=598.950017c請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!^include<stdio.h>floatfun(floatr)(/**********founcl**********/return3.14159*_1_/2.0;}main()/**********founcl**********/{ 2 x;printf("Enterx:");/**********found**********/scanf("%f*, 3 );printf("s=%f\n",fun(x));}參考答案第一空:r*r第二空:float第三空:&X試題解析:根據(jù)對試題的分析可知:函數(shù)fun返回以形參r為半徑的二分之一?圓面積。因此return后應(yīng)該是求二分之一圓面積的公式。所以第一空可以為r*r0根據(jù)C語言的變量先定義后使用以及函數(shù)調(diào)用原則,有在main函數(shù)中的函數(shù)調(diào)用fun(x)可知x被定義為float型,所以第二空為float。第三空所在語句明顯是輸入數(shù)據(jù),在本題程序中,只有x需要輸入,同時已經(jīng)說明x為float型,則其輸入時應(yīng)該帶地址符“&”,因此第三空為:&x〇11、給定程序的功能是從字符串s尾部開始,按逆序把相鄰的兩個字符交換位置,并一次把每個字符緊隨其后重復(fù)出現(xiàn)一次,放在一個新串セ中。例如:當s中的字符串為:"12345”時,則t中的字符串應(yīng)為:"4455223311”。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#include<string.h>voidfun(char*s,char*t){inti,j,si;/************found************/si= 1 ;for(i=sl-l,j=0;i>=0;i-=2){if(i-1>=0)t[j++]=s[i-l];if(i-1>=0)t[j++]=s[i-l];t[j++]=s[i];t[j++]=s[i];)/************found************/—2—;}main(){chars[100],t[100];printf(*\nPleaseenterstrings:");/************found************/scanf("%s", 3 );fun(s,t);printf("Theresultis:%s\n*,t);}參考答案第一空:strlen(s)第二空:t[j]=O第三空:s試題解析:本題考查字符串的操作。fun函數(shù)的功能是從字符串s尾部開始,按逆序把相鄰的兩個字符交換位置,并一次把每個字符緊隨其后重復(fù)出現(xiàn)一次,放在ー個新串t中。根據(jù)對題冃和源程序的分析可知S1的值應(yīng)為字符串s的長度,可通過函數(shù)strlen求得,因此第一個空應(yīng)填入strlen(s)。當對字符串t的插入操作結(jié)束后,應(yīng)在t的結(jié)尾處插入字符串的結(jié)束標志“、〇”,因此第二個空可填入t[j]=O或者其它等效語句。main函數(shù)中明顯需要讀入的是字符串s,因此讀入語句應(yīng)為:scanf("%s”,s);?12、給定程序的功能是將僅在字符串s中出現(xiàn)而不在字符串t中出現(xiàn)的字符,和僅在字符串t中出現(xiàn)而不在字符串s中出現(xiàn)的字符,構(gòu)成一個新字符串放在u中,u中的字符按原字符串s中字符順序排列,不去掉重復(fù)字符。例如:當s中的字符串為:"112345"時,t="24677”時,u中的字符串應(yīng)為:"1135677".請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>Sinclude<string.h>voidfun(char*s,char*t,char*u){inti,j,si,tl;si=strlen(s);tl=strlen(t);for(i=0;i<sl;i++){for(j=0;j<tl:j++)if(s[i]=t[j])break;/************found************/if(j—1—tl)*u++=s[i];}for(i=0;i<tl;i++){for(j=0;j<sl;j++)if(t[i]=s[j])break;/************found************/if(j―2—si)*u++=t[i];)/************found************/一3一二,、〇’;)main(){chars[100],t[100],u[100];printf(z,\nPleaseenterstrings:");scanf('版“,s);printf("\nPleaseenterstringt:");scanf("%s",t);fun(s,t,u);printf("Theresultis:%s\n,u);}參考答案第一空:ニニ第二空:==第三空:*u試題解析:本題考查對字符串的操作。程序中fun函數(shù)的功能是將僅在字符串s中出現(xiàn)而不在字符串t中出現(xiàn)的字符,和僅在字符串t中出現(xiàn)而不在字符串s中出現(xiàn)的字符,構(gòu)成一個新字符串放在u中,u中的字符按原字符串s中字符順序排列,可以存在重復(fù)字符。在源程序中for(j=0;j<tl;j++)if(s[i]==t[j])break;通過for塊,我們得到這樣的結(jié)論,只有當s[i]〇t[j]成立時,循環(huán)需要遍歷所有字符,則循環(huán)結(jié)束后,j的值為th而第一空所在if語句的條件是判斷字符串t是否遍歷結(jié)束,如果沒有發(fā)現(xiàn)相同的字符,那么tl一定大于或等于j,因此第一個空應(yīng)填入“==”或">メ。同理,當遍歷字符串s后仍沒有發(fā)現(xiàn)相同字符,那么j的值一定大于等于si,我們可以得到第二空的答案"==”或“>メ。對新字符串的操作結(jié)束后需在其結(jié)尾處插入字符串的結(jié)束標志"'0”,又因為只有字符串u是新建立的字符串,因此第三個空應(yīng)填入“*u”。13、給定程序的功能是將在字符串s中出現(xiàn)、而未在字符串t中出現(xiàn)的字符,構(gòu)成一個新的字符串放在u中,u中字符按原字符串中字符順序的逆序排列,不去掉重復(fù)字符。例如:當s中的字符串為:"112345”時,tゴ24677”時,u中的字符串應(yīng)為:"5311”。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#include<string.h>voidfun(char*s,char*t,char*u){inti,j,si,tl,ul;charr,*up=u;si=strlen(s);tl=strlen(t);for(i=0;i<sl;i++){for(j=0;j<tl;j++)/************found************/if(s[i]=t[j]) 1 ;/************found************/if(j—2—tl)*u++=s[i];}*u二‘、〇';ul=strlen(up);for(i=0;i<ul/2;i++){/************found************/r=—3—;up[i]=up[ul-l-i];up[ul-1-i]=r;main(){chars[100],t[100],u[100];printf("\nPleaseenterstrings:");scanf('%s”,s);printf("\nPleaseenterstringt:");scanf("%s”,t);fun(s,t,u);printf(*Theresultis:%s\n*,u);}參考答案第一空:break第二空:==第三空:up[i]試題解析:本題考查對字符串的操作。程序中fun函數(shù)的功能是將在字符串s中出現(xiàn)、而未在字符串t中出現(xiàn)的字符,構(gòu)成一個新的字符串放在u中,u中字符按原字符串中字符順序的逆序排列,可以存在重復(fù)字符。第二個for循環(huán)的功能是遍歷字符串t,查找與s[i]相同的字符,如果存在(s[i]==t[j])則跳出循環(huán)。因此,第一個空應(yīng)填入“break”。根據(jù)下列語句可知:當字符s[i]在字符串t中不存在時,執(zhí)行該for語句后,j的值等于tlo也就是說當"tl==j"或"tl>=j”成立時,就可以將s[i]累加到字符串u后面,由此可知第二空的答案。for(j=0;j<tl;j++)if(s[i]==t[j])break;fun函數(shù)中的最后ー個for循環(huán)的作用是將字符串u中的字符倒序插入。只需將字符串中對稱位置的字符相互交換,此時需引入交互的中間變量r。具體替換過程可以將需要交換的的任何ー個變量值賦值給r,在本題中,由于up[i]=up[ul-l-i]!語句存在,則肯定是首先將up[i]的值賦值給r。14、給定程序的功能是計算并輸入下列級數(shù)的前N項之和S(N),直到S(N+1)大于q為止,q的值通過形參傳入234 H+1S0<)=—+—+—+...+——1 2 3 N例如:若q的值為50.0,則函數(shù)值為50.416687。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得増行或刪行,也不得更改程序的結(jié)構(gòu)!^include<stdio.h>doublefun(doubleq){intn:doubles;n=2;s=2.0;/************fc)und************/while(s 1 q)s=s+(double)(n+l)/n;/************found************/―2—;)printf("n=%d\n”,n);/************found************/'―3—;}main()(printf(*%f\n*,fun(50));|參考答案第一空:<=第二空:n++;第二空:returns;試題解析:本題考査函數(shù)的定義和調(diào)用。程序中fun函數(shù)的功能是計算并輸入下列級數(shù)的前N項之和S(N),直到S(N+1)大于q為止。題目中給出了一個遞歸函數(shù)。fun函數(shù)中的while循環(huán)的作用是:判斷S(N+1)是否小于等于q,若條件成立則進行商的累加,當條件不滿足時則跳出循環(huán)。因此,第一個空應(yīng)填入“〈ゴ。因為題冃給出的函數(shù)是遞歸函數(shù),循環(huán)體每執(zhí)行ー次,按照題目要求,計數(shù)器都應(yīng)加1。因此第二個空應(yīng)填入‘'n++”。對于本題來說fun函數(shù)返回值為滿足條件的所有項的和,因此函數(shù)fun返回值為s,表示為:returns:〇15、給定程序的功能是讀入ー個整數(shù)K(2WkW10000),打印它的所有質(zhì)因子(就是所有為素數(shù)的因子)。例如:若輸入整數(shù):3410,則應(yīng)輸出:2、5、11、31〇請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>IsPrime(intn){inti,m;m=1;for(i=2;i<n;i++)/************found************/if(!(n 1 i)){/************found************/m=0;—2—;}return(m);main(){intj,k;printf("\nPleaseenteranintegernumberbetween2and10000:");/************found************/scanf("刎", 3 );printf("\n\nTheprimefactor(s)of%dis(are):",k);for(j=2;j<=k;j++)if((!(k%j))&&(IsPrime(j))) printf("\n%4d",j);printf("\n");}參考答案第一空:%第二空:break第三空:&k試題解析:本題考查素數(shù)的判斷算法。函數(shù)IsPrime的功能是判斷參數(shù)是否是素數(shù)。當存在比參數(shù)n小且大于等于2的數(shù)能夠整除n時,n就不是素數(shù),此時m被賦值為〇,并且跳出循環(huán)。因此第一個空和第二個空分別填入‘1%’'和"break”。根據(jù)語句‘'printf("\n\nTheprimefactor(s)of%dis(are):",k);“可以判斷出輸入的整數(shù)放置在k中,又因為scanf的輸入項表處應(yīng)填入接收變量的地址值。因此第三個空應(yīng)填入&k。16、給定程序的功能是分別統(tǒng)計字符串中大寫字母和小寫字母的個數(shù)。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>voidfun(char*s,int*a,int*b)(while(*s){if(*s>='A'&&*s<="Z')/**********found**********/—1―;if(*s>='a'&&*s<='z")/**********found**********/—2―;s++;)}main(){chars[100];intupper=0,lower=0;printf("\nPleaseastring:");gets(s);fun(s,&upper,&lower);/**********fc)und**********/printf《\nupper=%dlower=%d\n", 3 );參考答案第一空:(*a)++第二空:(*b)++第二空:upper,lower試題解析:本題考查字符串的遍歷。程序中fun函數(shù)的功能是分別統(tǒng)計字符串中大寫字母和小寫字母的個數(shù)。循環(huán)語句完成對字符串的遍歷,當字符串未結(jié)束時,判斷當前字符是大寫字母還是小寫字母。如果是大寫字母,則將指針a所指的變量加1;如果是小寫字母,則將指針b所指的變量加1。因此第一個空和第二個空應(yīng)分別填入“(*a)++”或+a=*a+ビ或“*a+二け和“(*b)++”或“*b=?b+ド或“*b+二ド。根據(jù)語句“fun(s,&upper,&lower);"可知:函數(shù)的形參是指針,因此將變量的地址值傳遞給函數(shù),并且函數(shù)執(zhí)行完后變量值也隨之改變。因此第三個空應(yīng)填入“upper,lower”。17、給定程序的功能是判斷字符ch是否與串str中的某個字符相同;若相同,什么也不做,若不同,則插在串的最后。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>^include<string.h>voidfun(char*str,charch){while(*str&&*str!=ch)str++;/**********found**********/if(*str 1 ch){str[0]=ch;/**********found**********/—2—=0;}}main(){chars[81],c;printf('\nPleaseenterastring:\n*);gets(s);printf(*\nPleaseenterthecharactertosearch:");c=getchar();/**********found**********/fun( 3 );printfl\nTheresultis%s\n',s);}參考答案第一空:!=第二空:*(++str)或?(str+l)第三空:s,c試題解析:本題考査字符串的遍歷。程序中fun函數(shù)的功能是判斷字符ch是否與串str中的某個字符相同;若相同,什么也不做,若不同,則插在串的最后。fun函數(shù)中while循環(huán)體的功能是遍歷字符串,當字符串未結(jié)束,并且當前字符與ch不相同時,則指針后移。循環(huán)結(jié)朿后,若當前字符與ch不相同,則將ch插入當前位置,并且在其后插入字符串結(jié)束標志‘'\0”。因此,第一個空和第二個空應(yīng)分別填入''!=''和''*(++str)”或“*(str+1)”。fun函數(shù)的形參有兩個,它們分別是被查找的字符串和字符。因此第三個空應(yīng)填入"fun(s,c)"18、給定程序的功能是根據(jù)形參m(2WmW9),在二維數(shù)組中存放一張m行m列的表格,由mainO函數(shù)輸出。例如:若輸入3則輸出:TOC\o"1-5"\h\z1 2 32 4 63 6 9請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#defineM10inta[M][M]={0};fun(inta[][M],intm){intj,k;for(j=0;j<m;j++)for(k=0;k<m;k++)/**************found**************/―1—=(k+l)*(j+l);}main(){inti,j,n;printf("Entern:*);scanfl%d”,&n);/**************found**************/fun( 2 );for(i=0;i<n;i++){for(j=0;j<n;j++)/**************found**************/printf("%4d",—3—);printf("\n");參考答案:第一空:a[j][k]第二空:a,n第三空:試題解析:本題考査數(shù)組的遍歷。程序中fun函數(shù)的功能是根據(jù)形參m(2くmW9),在二維數(shù)組中存放?張m行m列的表格。根據(jù)題目給出的例子,可以看出數(shù)組中的元素值是由數(shù)組的橫縱坐標分別加1,然后相乘得到的。因此第一個空應(yīng)填入“a[j][k]”。由于fun函數(shù)的形參包括兩個,ー個是整型數(shù)組,ー個是數(shù)組的行數(shù)(也是列數(shù)),又因為語句“inta[M][M]={0}廣,因此第二個空應(yīng)填入“a,n”。主函數(shù)中的二重循環(huán)是將整型數(shù)組打印出來。因此第三個空應(yīng)填入“a[i][j],\19、給定程序的功能是對a數(shù)組中n個人員的エ資進行分段統(tǒng)計,各段的人數(shù)存到b數(shù)組中;エ資為1000元以下的人數(shù)存到b[0]中,エ資為1000元到1999元的人數(shù)存到b[l]中,エ資為2000元到2999元的人數(shù)存到b[2],エ資為3000元到3999元的人數(shù)存到b[3]中,エ資為4000元到4999元的人數(shù)存到b[4],エ資為5000元以上的人數(shù)存到b[5]中。例如,當a數(shù)組中的數(shù)據(jù)為:900、180〇、270〇、380〇、590〇、330〇、240〇、750〇、3800,調(diào)用該函數(shù)后,b中存放的數(shù)據(jù)應(yīng)是:1、1、2、3、〇、2〇請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKI.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>voidfun(inta[],intb[],intn)|inti;/**************found**************/for(i=0;i<6;i++)b[i]=—1—;for(i=0;i<n;i++)if(a[i]>=5000)b[5]++;/**************found**************/—2—b[a[i]/1000]++;)main(){inti,a[100]={900,1800,2700,3800,5900,3300,2400,7500,3800},b[6];fun(a,b,9);printf("Theresultis:つ;/**************found**************/for(i=0;i<6;i++)printfC%d",_3—);printf("\n");}參考答案第一空:〇第二空:else第三空:b[i]試題解析:本題考查對數(shù)組的訪問。程序中fun函數(shù)的功能是對a數(shù)組中n個人員的エ資進行分段統(tǒng)計,各段的人數(shù)存到b數(shù)組中;エ資為1000元以下的人數(shù)存到b[0]中,エ資為1000元到19999元的人數(shù)存到b[l]中,エ資為2000元到2999元的人數(shù)存到b[2],エ資為3000元到3999元的人數(shù)存到b[3]中,エ資為4000元到4999元的人數(shù)存到b[4],エ資為5000元以上的人數(shù)存到b[5]中。fun函數(shù)的第一個for循環(huán)要完成的是對數(shù)組b的初始化,即對數(shù)組的每個元素賦予初始值〇。因此,第一,個空應(yīng)填入“〇”。第二個for循環(huán)是將各個工資段的人數(shù)進行統(tǒng)計,將工資大于5000的人數(shù)統(tǒng)計在b[5]中,將エ資為a[i]的人數(shù)統(tǒng)計在b[a[iレ100〇]中,因此,第二個空應(yīng)填入“else”。主函數(shù)中的for循環(huán)是用來輸出數(shù)組元素的,因為所有的人員個數(shù)都存在于b數(shù)組中,所以第三個空應(yīng)填入“給定程序的功能是將n個人員的考試成績進行分段統(tǒng)計,考試成績放在a數(shù)組中,各分數(shù)段的人數(shù)存至此數(shù)組中:成績?yōu)?0到69的人數(shù)存到b[〇]中,成績?yōu)?0到79的人數(shù)存到b[l],成績?yōu)?0到89的人數(shù)存到b[2],成績?yōu)?0到99的人數(shù)存到b[3],成績?yōu)?00的人數(shù)存到b[4],成績?yōu)?0分以下的人數(shù)存到b[5]中。例如,當a數(shù)組中的數(shù)據(jù)是:93、85、77、68、59、43、94、75、98。調(diào)用該函數(shù)后,b數(shù)組中存放的數(shù)據(jù)應(yīng)是:1、2、1、3,0,2。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>voidfun(inta[],intb[],intn){inti;for(i=0;i<6;i++)b[i]=0;/**************found**************/for(i=0;i< 1 ;i++)if(a[i]<60)b[5]++;/**************found**************/—2—b[(a[i]-60)/10]++;}main(){inti,a[100]={93,85,77,68,59,43,94,75,98},b[6];/**************found**************/fun( 3 ,9);printf(*theresultis:つ;for(i=0;i<6;i++)printf("刎",b[i]);printf("\n");}'參考答案第一空:n第二空:else第三空:a,b試題解析:本題考查對數(shù)組的訪問。程序中fun函數(shù)的功能是將n個人員的考試成績進行分段統(tǒng)計,考試成績放在a數(shù)組中,各分數(shù)段的人數(shù)存到b數(shù)組中:成績?yōu)?0到69的人數(shù)存到b[〇]中,成績?yōu)?0到79的人數(shù)存到b[l],成績?yōu)?0到89的人數(shù)存到b[2],成績?yōu)?0到99的人數(shù)存到b[3],成績?yōu)?00的人數(shù)存至此[4],成績?yōu)?0分以下的人數(shù)存到b[5]中。fun函數(shù)的第一個for循環(huán)要完成的是對數(shù)組b的初始化,即對數(shù)組的每個元素賦予初始值。。第二個for循環(huán)是將各個分數(shù)段的人數(shù)進行統(tǒng)計,循環(huán)計數(shù)器的最大值為nT。將分數(shù)小于60的人數(shù)統(tǒng)計在b[5]中,將分數(shù)為a[i]的人數(shù)統(tǒng)計在b[a[i]-60)/10]中,因此,第二個空應(yīng)填入‘‘else”。fun函數(shù)的形參有三個。ー個是成績數(shù)組,ー個是統(tǒng)計人數(shù)的數(shù)組,還有一?個是總?cè)藬?shù)。因此第三個空應(yīng)填入“a,b”。20、給定程序的功能是計算score中m個人的平均成績aver,將低于aver的成績放在below中,通過函數(shù)名返回人數(shù)。例如,當score={10,20,30,40,50,60,70,80,90},m=9時,函數(shù)返回的人數(shù)應(yīng)該是4,below={10,20,30,40}〇請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!Sinclude<stdio.h>#include<string.h>intfun(intscore[],intm,intbelow[])(inti,j=0;floataver=0.0;for(i=0;i<m;i++)aver+=score[i];aver/=(float)m;ford=0;i<m;i++)/**************found**************/if(score[i]<aver)below[j++]= 1 ;returnj;}main(){inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90};/**************found**************/n=fun(score,9, 2 );printf(\nBelowtheaveragescoreare:);/**************found**************/for(i=0;i<n;i++)printf("%d", 3);}參考答案第一空:score[i]第二空:below第三空:below[i]試題解析:本題考查函數(shù)的調(diào)用,以及字符的訪問。程序中的fun函數(shù)的功能是計算score中m個人的平均成績aver,將低于aver的成績放在below中,通過函數(shù)名返回人數(shù)。fun函數(shù)的if語句的功能是判斷第i個人的個人成績是否小于平均成績,如果是,則將成績放入數(shù)組中,同時將數(shù)組的下標j加1。因此,第一個空應(yīng)填入“score[i]”。fun函數(shù)的參數(shù)共有三個,ー個是存放個人成績的數(shù)組,ー個是個人成績數(shù)組的元素個數(shù),還有一個是存放低于平均成績的數(shù)組。因此第二個空應(yīng)填入below。主函數(shù)的for循環(huán)語句是用來輸出低于平均成績的數(shù)組元素。因此第三個空應(yīng)填入below[i]〇21、已知學生的記錄由學號和學習成績構(gòu)成,N名學生的數(shù)據(jù)已經(jīng)存入a結(jié)構(gòu)體數(shù)組中。給定程序的功能是找出成績最低的學生記錄,通過形參返回主函數(shù)。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKLC中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!^include<stdio.h>Sinclude<string.h>^defineN10typedefstructss{charnum[10];ints;}STU;fun(STUaロ,STU*s)(/**************found**************/ 1 h;inti;h=a[0];for(i=1;i<N;i++)/**************found**************/if(a[i].s<h.s) 2 =a[i];/**************found**************/*s=_3_:}main(){STUa[N]={{"A01”,81},{"A02”,89},{"A03”,66},{"A04”,87},{"A05",77},{"A06”,90},{"A07

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論