國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷3(共66題)_第1頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷3(共66題)_第2頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷3(共66題)_第3頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷3(共66題)_第4頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷3(共66題)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷3(共9套)(共66題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:有N×N矩陣,根據(jù)給定的m(m<=N)值,將每行元素中的值均右移m個(gè)位置,左邊置為0。例如,N=3,m=2,有下列矩陣程序執(zhí)行結(jié)果為請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#defineN4voidfun(int(*t)[N],intm){inti,j;/**********found**********/for(i=0;i=0;j--)/**********found**********/t[i][j+【2】]=t[i][j];/**********found**********/for(j=0;j<【3】;j++)t[i][j]=0;}}main(){intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j,m;printf("\nTheoriginalarray:\n");for(i=0;i標(biāo)準(zhǔn)答案:i++mm知識(shí)點(diǎn)解析:第一空:題目要求對(duì)每行元素中的值均右移m個(gè)位置,故第一空處循環(huán)變量每次增1,共循環(huán)N次,完成對(duì)N行的移位操作,因此第一空處應(yīng)為“i++”。第二空:循環(huán)“for(j=N-1-m;j>=0;j--)”是進(jìn)行行元素中的值右移m個(gè)位置,即把t[i][j]元素放置在t[i][j+m]上,因此第二空應(yīng)為“m”。第三空:循環(huán)“for(j=0;j<___3___;j++)”是對(duì)空出來(lái)的位置補(bǔ)0,每行元素的前m位數(shù)據(jù)已經(jīng)移動(dòng)到后面,每行空處m個(gè)元素,因此第三空為“m”。二、程序修改題(本題共1題,每題1.0分,共1分。)2、給定程序MODll.C中函數(shù)fun的功能是:根據(jù)形參m的值(2≤m≤9),在m行m列的二維數(shù)組中存放如下所示規(guī)律的數(shù)據(jù),由main函數(shù)輸出。例如,若輸入2則輸出:若輸入4則輸出:請(qǐng)改正程序函數(shù)中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#include#defineM10inta[M][M]={0};/***************found****************/voidfun(int**a,intm)(intj,k;for(j=0;j標(biāo)準(zhǔn)答案:(1)voidfun(inta[][M],intm)(2)a[j][k]=(k+1)*(j+1);知識(shí)點(diǎn)解析:(1)第一標(biāo)識(shí)下“int**a",a是指向指針的指針,在主函數(shù)內(nèi)fun函數(shù)的調(diào)用形式是:“fun(a,n);",其中a是二:維數(shù)組,代表數(shù)組的首地址,因此fun函數(shù)的第一個(gè)參數(shù)是指針,而不是指向指針的指針,故第一個(gè)標(biāo)識(shí)下應(yīng)改為“voidfun(inta[][M],intm)"。(2)根據(jù)題干給出的例子可以分析出,數(shù)組元素與行和列的關(guān)系是a啪[k]=(k+1)*(j+1),因此第二標(biāo)識(shí)下應(yīng)改為“a[j][k]=(k+1)*(j+1);"。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫(xiě)一個(gè)函數(shù)voidam(char*tt,intpp[]),統(tǒng)計(jì)在tt所指字符串中’a’到’z’26個(gè)小寫(xiě)字母各自出現(xiàn)的次數(shù),并依次放在pp所指數(shù)組中。例如,當(dāng)輸入字符串:abedefgabcdeabc后,程序的輸出結(jié)果應(yīng)該是:33322110000000000000000000注意:部分源程序在文件PROGl.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。#include#includevoidfun(char*tt,intpp[]){}main(){charaa[1000];intbb[26],k;voidNONO();printf("\nPleaseenteracharstring:");scanf("%s",aa);fun(aa,bb);for(k=0;k<26;k++)printf("%d",bb[k]);printf("\n");NONO();}voidNONO(){/*本函數(shù)用于打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/charaa[1000];intbb[26],k,i;FILE*rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%s",aa);fun(aa,bb);for(k=0;k<26;k++)fprintf(wf,"%d",bb[k]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}標(biāo)準(zhǔn)答案:{char*p=tt;inti;for(i=0;i<26;i++)pp[i]=0;while(*p){if(*p>=’a’&&*p<=’z’)pp[*p-’a’]+=1;p++;}}知識(shí)點(diǎn)解析:進(jìn)入fun函數(shù),根據(jù)前面的分析:首先,因?yàn)閿?shù)組pp的每一個(gè)元素都用作計(jì)數(shù)器,因此,需要使數(shù)組pp的每一個(gè)元素都置初值0,通過(guò)“for(i=0;i<26;i++)pp[i]=0;”來(lái)實(shí)現(xiàn)。然后,用指針依次指向字符串的每一個(gè)字符直到字符串結(jié)束標(biāo)志。最后,在循環(huán)中根據(jù)*p的值不同,將累加器中的對(duì)應(yīng)元素加1。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、程序填空題(本題共1題,每題1.0分,共1分。)1、請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:從‘a(chǎn)’到‘z’統(tǒng)計(jì)一個(gè)字符串中所有字母字符各自出現(xiàn)的次數(shù),結(jié)果保存在數(shù)組aIf中。注意:不區(qū)分大小寫(xiě),不能使用字符串庫(kù)函數(shù)。例如,輸入:“A=abc+5*c”,結(jié)果為:a=2,b=l,c=2。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)run的橫線(xiàn)上填入所編寫(xiě)的若干表達(dá)式或語(yǔ)句。試題程序:#include<conio.h>#include<stdio.h>#defineN100voidfun(char*tt,intalf[]){intichar*p=tt;for(i=0;i<26;i++)【】;while(*p){if(*p>=’A’&&*p<=’z’)【】;if(*p>=’a’&&*p<=’Z’)alf[*p-’a’]++;【】;}}main(){charstr[N];chara=’a’;intalf[26],k;clrscr();printf("\nPleaseenteracharstring:");scanf("%S",str);printf("\n**Theoriginalstring**\n");puts(str);fun(str,alf);printf("\n**Thenumberofletter**\n");for(k:0;k<26;k++){if(k%5==0)printf(“\n”);printf(“%c=%d”,a+k,alf[k]);}printf(“\n”);}標(biāo)準(zhǔn)答案:alf[i]=0*p+=32p++知識(shí)點(diǎn)解析:第一空:數(shù)組alf[26]用來(lái)存放字母字符出現(xiàn)的次數(shù),在使用之前需要清零。第二空:題目要求不區(qū)分大小寫(xiě),所以可以先將所有的大寫(xiě)字母都轉(zhuǎn)換為對(duì)應(yīng)的小寫(xiě)字母,然后一并記錄出現(xiàn)的次數(shù)。將大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)的小寫(xiě)字母,只需將ASCII碼加上32就可以了。第三空:指針p指向字符串tt,通過(guò)p自加1來(lái)移動(dòng)指針,訪(fǎng)問(wèn)字符串中的所有字符。二、程序修改題(本題共1題,每題1.0分,共1分。)2、下列給定的程序中,函數(shù)fun()的功能是:計(jì)算并輸出k以?xún)?nèi)最大的6個(gè)能被7或11整除的自然數(shù)之和。K的值由主函數(shù)傳入,若k的值為500,則函數(shù)的值為2925。請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<conio.h>intfun(intk){intm=0,mc=0,j;/*************found*************/while(k>=2)&&(mc<6){/*************found*************/if((k%7=0)||(k%ll=0)){/*************found**************/m=k;mc++;}k--;}returnm;}main(){clrscr();printf("%d\n",fun(500));}標(biāo)準(zhǔn)答案:(1)錯(cuò)誤:while(k>=2)&&(mc<6)正確:while((k>=2)&&(mc<6))(2)錯(cuò)誤:if((k%7=0)||(k%11=0))正確:if((k%7==0)||(k%11=0))(3)錯(cuò)誤:m=k正確:m=m+k;知識(shí)點(diǎn)解析:錯(cuò)誤1:C語(yǔ)言規(guī)定while語(yǔ)句后的表達(dá)式兩側(cè)必須要有圓括號(hào)。錯(cuò)誤2:if語(yǔ)句的判斷條件應(yīng)用關(guān)系運(yùn)算符,而不是賦值運(yùn)算符。錯(cuò)誤3:根據(jù)題意,將滿(mǎn)足條件的數(shù)求累加和。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)己在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中。注意:分?jǐn)?shù)低的學(xué)生可能不只一個(gè),函數(shù)返回分?jǐn)?shù)最低學(xué)生的人數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>#defineN16typedefstruct{charnum[10];ints;}STREC;intfun(STREC*a,STREC*b){}main(){STRECs[N]={{“GA005”,82},{“GA003”,75},{“GA002”,85},{“GA004”,78},{“GA001”,95},{“GA007”,62},{“GA008”,60},{“GA006”,85},{“GA015”,83},{“GA013”,94},{“GA012”,78},{“GA014”,97},{“GA011”,60},{“GA017”,65},{“GA018”,60},{“GA016”,74}};STRECh[N];inti,n;FILE*out;n=fun(S,h);printf(“The%dlowestscore:\n”,n);for(i=0;i<n;i++)printf(“%s%4d\n”,h[i].mum,h[i].s);/*輸出最低分學(xué)生的學(xué)號(hào)和成績(jī)*/printf(“\n”);out=fopen("outl9.dat",“w”);fprintf(out,“%d\n”,n);for(i=0;i<n;i++);fprintf(out,“%4d\n”,h[i].s);fclose(out);}標(biāo)準(zhǔn)答案:intfun(STREC*a,STREC*b){inti,j=0,min=a[0].s;for(i=0;i<N;i++)if(min>a[i].s)min=a[i].s;/*找出最小值*/for(i=0;i<N;i++):if(min==a[i].s)b[j++]=a[i];/*找出成績(jī)與min相等的學(xué)生的記錄,存入結(jié)構(gòu)體b中*/returnj;/*返回最低成績(jī)的學(xué)生人數(shù)*/知識(shí)點(diǎn)解析:該程序使用循環(huán)嵌套,第1個(gè)for語(yǔ)句的作用是找出最小值。第2個(gè)循環(huán)的作用是找出與min相等的成績(jī),也即最低成績(jī)的學(xué)生記錄,并存入b中。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、程序填空題(本題共1題,每題1.0分,共1分。)1、函數(shù)fun的功能是:逆置數(shù)組元素中的值。例如:若a所指數(shù)組中的數(shù)據(jù)依次為:1、2、3、4、5、6、7、8、9,則逆置后依次為:9、8、7、6、5、4、3、2、1。形參n給出數(shù)組中數(shù)據(jù)的個(gè)數(shù)。請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#includevoidfun(inta[],intn){inti,t;/*****************found*******************/for(i=0;i<【1】;i++){t=a[i];/*****************found*******************/a[i]=a[n-1-【2】];/*****************found*******************/【3】=t;}}main(){intb[9]={1,2,3,4,5,6,7,8,9),i;printf(”\nTheoriginaldata:\n”);for(i=0;i<9;i++)printf(”%4ct”,b[i]);printf("\n");fun(b,9);printf("\nThedataafterinvert:\n”);for(i=0;i<9;i++)printf(”%4d”,b[i]);printf("\n");}標(biāo)準(zhǔn)答案:n/2ia[n-i-1]知識(shí)點(diǎn)解析:第一空:由審題分析可知,總共交換n/2次,故循環(huán)的終止條件為i等于n/2,故第一空處應(yīng)為“n/2”。第二空:a[0]和a[n-1]交換,a[1]和a[n-2]交換…..,因此a[i]和a[n-i-1]交換,故第二空處應(yīng)為“i”。第三空:“t=a[i];a[i]=a[n-1-i];”所以第三空處是把t值賦值a[n-1-i],故第三空處應(yīng)為“a[n-1-i]”。二、程序修改題(本題共1題,每題1.0分,共1分。)2、給定程序MODll。C中的函數(shù)Creatlink的功能是創(chuàng)建帶頭結(jié)點(diǎn)的單向鏈表,并為各結(jié)點(diǎn)數(shù)據(jù)域賦0到m-1的值。請(qǐng)改正函數(shù)Creatlink中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#includetypedefstructaa{intdata;structaa*next;}NODE;NODE*Creatlink(intn,intm){NODE*h=NULL,*p,*s;inti;/**********found***********/p=(NODE)malloc(sizeof(NODE));h=p;p->next=NULL;for(i=1;i<=n;i++){s=(NODE*)malloc(sizeof(NODE));s->data=rand()%m;s->next=p->next;p->next=s;p=p->next;}/**********found***********/returnp;}outlink(NODE*h){NODE*p;p=h->next;printf("\n\nTHELIST:\n\nHEAD");while(p){printf("->%d",p->data);p=p->next;}printf("\n");}main(){NODE*head;head=Creatlink(8,22);outlink(head);}標(biāo)準(zhǔn)答案:p=(NODE*)malloc(sizeof(NODE));returnh;知識(shí)點(diǎn)解析:(1)第一標(biāo)識(shí)下“p=(NODE)malloc(sizeof(NODE));”,maclloc函數(shù)的返回類(lèi)型是void*類(lèi)型,表示未確定類(lèi)型的指針,因此需要指針類(lèi)型轉(zhuǎn)換,而“(NODE)”不是指針類(lèi)型,故第一標(biāo)識(shí)下應(yīng)改成“p=(NODE*)malloc(sizeof(NODE));”。(2)第二個(gè)標(biāo)識(shí)下,最后將單鏈表返回,應(yīng)該是返回頭指針h指向的鏈表,而不是其中的一個(gè)節(jié)點(diǎn)p,所以“returnp;”應(yīng)該改為“returnh;”。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫(xiě)一個(gè)函數(shù)fun,它的功能是:將ss所指字符串中所有下標(biāo)為奇數(shù)位置上的字母轉(zhuǎn)換為大寫(xiě)(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入”abc4EFg”,則應(yīng)輸出”aBc4EFg”。注意:部分源程序存在文件PROGl.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。#include#includevoidfun(char*ss){}main(){chartt[81];voidNONO();printf("\nPleaseenteranstringwithin80characters:\n");gets(tt);printf("\n\nAfterchanging,thestring\n\"%s\"",tt);fun(tt);printf("\nbecomes\n\"%s\"\n",tt);NONO();}voidNONO(){/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;chartt[81];inti;fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(fp,"%s",tt);fun(tt);fprintf(wf,"%s\n",tt);}fclose(fp);fclose(wf);}標(biāo)準(zhǔn)答案:{inti;for(i=1;i=’a’&&ss[i]<=’z’)ss[i]-=32;}}知識(shí)點(diǎn)解析:(1)首先取得字符串中下標(biāo)為奇數(shù)的字符。(2)判斷奇數(shù)位置的字符是否為小寫(xiě)字母。(3)若(2)中的判斷結(jié)果是小寫(xiě)字母,則對(duì)其進(jìn)行轉(zhuǎn)換。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第4套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列關(guān)于棧和隊(duì)列的描述中,正確的是()。A、棧是先進(jìn)先出B、隊(duì)列是先進(jìn)后出C、隊(duì)列允許在隊(duì)頭刪除元素D、棧在棧頂刪除元素標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧實(shí)際也是線(xiàn)性表,只不過(guò)是一種特殊的線(xiàn)性表。棧是只能在表的一端進(jìn)行插入和刪除運(yùn)算的線(xiàn)性表,通常稱(chēng)插入、刪除的這一端為棧頂,另一端為棧底。隊(duì)列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊(duì)頭,允許插入的一端叫做隊(duì)尾。2、已知二叉樹(shù)后序遍歷序列是CDABE,中序遍歷序列是CADEB,它的前序遍歷序列是()。A、ABCDEB、ECABDC、EACDBD、CDEAB標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于后序遍歷的最后一個(gè)元素為E,所以E為根結(jié)點(diǎn),所以它的前序遍歷的首個(gè)元素為E,故排除A)和D)選項(xiàng)。由于中序遍歷中,元素B在元素根結(jié)點(diǎn)E的后面,所以B為二叉樹(shù)的右子樹(shù),并且該二叉樹(shù)右子樹(shù)只有一個(gè)元素,所以前序遍歷的最后一個(gè)元素應(yīng)為B,故選項(xiàng)C)為正確選項(xiàng),即該二叉樹(shù)的前序遍歷序列是EACDB。3、在數(shù)據(jù)流圖中,帶有箭頭的線(xiàn)段表示的是()。A、控制流B、數(shù)據(jù)流C、模塊調(diào)用D、事件驅(qū)動(dòng)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)流圖中帶箭頭的線(xiàn)段表示數(shù)據(jù)流,沿箭頭方向傳遞數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。4、結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。A、順序結(jié)構(gòu),分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu)B、順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)-C、分支結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)D、分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu),循環(huán)結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序設(shè)計(jì)語(yǔ)言?xún)H僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。遵循程序結(jié)構(gòu)化的設(shè)計(jì)原則,按結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序易于理解、使用和維護(hù);可以提高編程工作的效率,降低軟件的開(kāi)發(fā)成本。5、下列方法中,不屬于軟件調(diào)試方法的是()。A、回溯法B、強(qiáng)行排錯(cuò)法C、集成測(cè)試法D、原因排除法標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件調(diào)試主要采用以下三種方法:強(qiáng)行排錯(cuò)法:作為傳統(tǒng)的調(diào)試方法,其過(guò)程可概括為設(shè)置斷點(diǎn)、程序暫停、觀(guān)察程序狀態(tài)、繼續(xù)運(yùn)行程序。回溯法:該方法適合于小規(guī)模程序的排錯(cuò)、即一旦發(fā)現(xiàn)了錯(cuò)誤,先分析錯(cuò)誤征兆,確定最先發(fā)現(xiàn)“癥狀”的位置。原因排除法:原因排除法是通過(guò)演繹和歸納,以及二分法來(lái)實(shí)現(xiàn)。6、下列選項(xiàng)中,不屬于模塊間耦合的是()。A、內(nèi)容耦合B、異構(gòu)耦合C、控制耦合D、數(shù)據(jù)耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:耦合可以分為下列幾種,它們之間的耦合度由高到低排列:內(nèi)容耦合——若一個(gè)模塊直接訪(fǎng)問(wèn)另一模塊的內(nèi)容,則這兩個(gè)模塊稱(chēng)為內(nèi)容耦合。公共耦合——若一組模塊都訪(fǎng)問(wèn)同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),則稱(chēng)為公共耦合。外部耦合——若一組模塊都訪(fǎng)問(wèn)同一全局?jǐn)?shù)據(jù)項(xiàng),則稱(chēng)為外部耦合。控制耦合——若一模塊明顯地把開(kāi)關(guān)量、名字等信息送入另一模塊,控制另一模塊的功能,則稱(chēng)為控制耦合。標(biāo)記耦合——若兩個(gè)以上的模塊都需要其余某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu)時(shí),不使用其余全局變量的方式而全使用記錄傳遞的方式,這樣的耦合稱(chēng)為標(biāo)記耦合。數(shù)據(jù)耦合——若一個(gè)模塊訪(fǎng)問(wèn)另一個(gè)模塊,被訪(fǎng)問(wèn)模塊的輸入和輸出都是數(shù)據(jù)項(xiàng)參數(shù),則這兩個(gè)模塊為數(shù)據(jù)耦合。非直接耦合——若兩個(gè)模塊沒(méi)有直接關(guān)系,它們之間的聯(lián)系完全是通過(guò)程序的控制和調(diào)用來(lái)實(shí)現(xiàn)的,則稱(chēng)這兩個(gè)模塊為非直接耦合,這樣的耦合獨(dú)立性最強(qiáng)。7、下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。A、多態(tài)性B、標(biāo)識(shí)惟一性C、封裝性D、耦合性標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:面向?qū)ο笤O(shè)計(jì)方法與面向過(guò)程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。其特點(diǎn)包括:標(biāo)識(shí)惟一性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性好。8、在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過(guò)程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù):概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),為了能夠用某一DBMS實(shí)現(xiàn)用戶(hù)需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。它包括從E-R圖向關(guān)系模式轉(zhuǎn)換和邏輯模式規(guī)范化及調(diào)整、實(shí)現(xiàn)。9、在一棵二叉樹(shù)上,第5層的結(jié)點(diǎn)數(shù)最多是()。A、8B、9C、15D、16標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì):二叉樹(shù)第i(i≥1)層上至多有2i-1個(gè)結(jié)點(diǎn)。得到第5層的結(jié)點(diǎn)數(shù)最多是16個(gè)。10、下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是()。A、數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)管理系統(tǒng)B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問(wèn)題C、數(shù)據(jù)庫(kù)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持D、數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)的目的實(shí)質(zhì)上是設(shè)計(jì)出滿(mǎn)足實(shí)際應(yīng)用需求的實(shí)際關(guān)系模型。數(shù)據(jù)庫(kù)技術(shù)的主要目的是有效地管理和存取大量的數(shù)據(jù)資源,包括:提高數(shù)據(jù)的共享性,使多個(gè)用戶(hù)能夠同時(shí)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù);減小數(shù)據(jù)的冗余,以提高數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應(yīng)用程序的獨(dú)立性,從而減少應(yīng)用程序的開(kāi)發(fā)和維護(hù)代價(jià)。11、以下關(guān)于C語(yǔ)言的敘述中正確的是()。A、預(yù)處理命令通常位于函數(shù)體外面,但也可以位于函數(shù)體中間B、C語(yǔ)言中的變量定義須在其他語(yǔ)句之前C、在C語(yǔ)言程序的書(shū)寫(xiě)中,一個(gè)語(yǔ)句必須單占一行D、一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件可由自己的main函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:源程序中可以有預(yù)處理命令(include命令僅為其中的一種)。C語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義。C語(yǔ)言程序的書(shū)寫(xiě)中,多個(gè)語(yǔ)句可以位于一行,但為了增強(qiáng)可讀性,一般每行只有一條語(yǔ)句。一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,但僅可以有一個(gè)main函數(shù)。12、下列敘述中錯(cuò)誤的是()。A、用戶(hù)所定義的標(biāo)識(shí)符允許使用關(guān)鍵字B、用戶(hù)所定義的標(biāo)識(shí)符應(yīng)盡量做到“見(jiàn)名知意”C、用戶(hù)所定義的標(biāo)識(shí)符必須以字母或下劃線(xiàn)開(kāi)頭D、用戶(hù)定義的標(biāo)識(shí)符中,大、小寫(xiě)字母代表不同標(biāo)識(shí)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)言中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下劃線(xiàn)組成,并且第一個(gè)字符必須為字母或下劃線(xiàn),凡是要求標(biāo)識(shí)符的地方都必須按此規(guī)則命名。在C語(yǔ)言的標(biāo)識(shí)符中,大寫(xiě)字母和小寫(xiě)字母被認(rèn)為是兩個(gè)不同的字符。在選擇標(biāo)識(shí)符時(shí),應(yīng)注意做到“見(jiàn)名知義”,即選擇具有一定含義的英文單詞或漢語(yǔ)拼音作為標(biāo)識(shí)符,以增加程序的可讀性。13、下列選項(xiàng)中可作為C語(yǔ)言合法常量的是()。A、-80B、-80C、-8e1.0D、-80.0e標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:所謂常量是指在程序運(yùn)行的過(guò)程中,其值不能被改變的量。在C語(yǔ)言中,有整型常量、實(shí)型常量、字符常量和字符串常量等類(lèi)型。選項(xiàng)B)中是以0開(kāi)頭,表示一個(gè)八進(jìn)制數(shù),而八進(jìn)制數(shù)的取值范圍是0~7,所以“-080”錯(cuò)誤;在C語(yǔ)言中e后面的指數(shù)必須是整數(shù),因此選項(xiàng)C)和D)也不正確。14、下列定義變量的語(yǔ)句中錯(cuò)誤的是()。A、im_int;B、doubleint_;C、charFor;D、floaUS$;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,變量的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線(xiàn)3種字符組成,且首字符必須為字母或下劃線(xiàn)。在C語(yǔ)言中大寫(xiě)字母和小寫(xiě)字母被認(rèn)為是兩個(gè)不同的字符。選項(xiàng)A)定義的變量標(biāo)識(shí)符int和選項(xiàng)B)定義的變量標(biāo)識(shí)符int與C語(yǔ)言的關(guān)鍵字int是不同的,是正確的變量標(biāo)識(shí)。選項(xiàng)C)定義的變量標(biāo)識(shí)符For與C語(yǔ)言中的關(guān)鍵字for是兩個(gè)不同的標(biāo)識(shí)符,所以選項(xiàng)C)是正確的,而選項(xiàng)D)包含有特殊字符$,因而其不符合C語(yǔ)言的變量命名規(guī)定。15、下列關(guān)于函數(shù)的敘述中正確的是()。A、每個(gè)函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))B、每個(gè)函數(shù)都可以被單獨(dú)編譯C、每個(gè)函數(shù)都可以單獨(dú)運(yùn)行D、在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,函數(shù)定義是平行的,函數(shù)不能嵌套定義,即函數(shù)之間沒(méi)有從屬關(guān)系。雖然函數(shù)之間可以相互調(diào)用,但main()函數(shù)不能被調(diào)用,選項(xiàng)A)錯(cuò)誤;C程序從:main()函數(shù)開(kāi)始執(zhí)行,當(dāng)main()數(shù)執(zhí)行完畢時(shí),整個(gè)程序就結(jié)束了。C程序的執(zhí)行必須從main()函數(shù)開(kāi)始,選項(xiàng)C)選項(xiàng)錯(cuò)誤;函數(shù)不能嵌套定義,選項(xiàng)D)錯(cuò)誤。16、當(dāng)a=1、b=2、c=3、d=4時(shí),執(zhí)行下面程序段后,x的值是()。if(a<b)if(c<d)x=1;elseif(a<c)if(bA、1B、6C、3D、2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是if-else語(yǔ)句。第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下面的語(yǔ)句。第二個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)c<d條件成立,執(zhí)行下面的語(yǔ)句x=1。17、以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=4,b=3,c=2,d=1;printf("%d",a<b?a:d<c?d:b);}A、1B、3C、2D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:條件表達(dá)式的格式為:"a?b:c",它的功能是:當(dāng)a為真時(shí),表達(dá)式的值等于b的值;當(dāng)a為假時(shí),表達(dá)式的值等于c的值。因?yàn)闂l件運(yùn)算符的結(jié)合方向?yàn)椤白杂蚁蜃蟆薄R虼?,?dāng)表達(dá)式中嵌套使用條件表達(dá)式時(shí),應(yīng)先計(jì)算右邊的條件表達(dá)式,再計(jì)算左邊的條件表達(dá)式。題中應(yīng)先計(jì)算“d18、有以下程序#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2),i,j,t=0;for(i=0;i<3;i++)for(j=2j>=i;j--)t+=b[i][j];printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是()。A、4B、3C、8D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這道題主要考查的是二維數(shù)組的有關(guān)知識(shí)。在兩層for循環(huán)語(yǔ)句中,累加上三角元素,所以程序執(zhí)行的過(guò)程為t=b[0][0]+b[0][1]+b[0][2]+b[1][1]+b[1][2]+b[2][2]=8。19、以下程序:#include<stdio.h>main(){charstr[10];scanf("%s",&str);printf("%s\n",str);}運(yùn)行上面的程序,輸入字符串howareyou,則程序的執(zhí)行結(jié)果是()。A、howB、howareyouC、hD、howareyou標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:當(dāng)從鍵盤(pán)輸入howareyou時(shí),由于scanf輸入函數(shù)的特點(diǎn)是遇到空格時(shí)結(jié)束讀入字符,因此,該程序只將how這3個(gè)字符送到了字符數(shù)組str中,并在其后自動(dòng)加上結(jié)束符“\0”。20、設(shè)x和y都是int類(lèi)型,且x=1,y=2,則printf("%d%d",x,y,(x,y))的輸出結(jié)果是()。A、12B、122C、1,2D、輸出值不確定標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查printf函數(shù)的格式和逗號(hào)表達(dá)式。printf函數(shù)在輸出時(shí),是根據(jù)格式說(shuō)明符的個(gè)數(shù)輸出的,如果函數(shù)中有多余的項(xiàng)將不予輸出;如果有輸出項(xiàng)少于格式說(shuō)明符,則出錯(cuò),不能輸出正確的結(jié)果。本題中逗號(hào)表達(dá)式(x,y)只返回y的值。此時(shí)格式說(shuō)明的個(gè)數(shù)是2,而輸出項(xiàng)的個(gè)數(shù)是3,因此printf函數(shù)只輸出前兩項(xiàng)。21、以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=8,b=6,m=1;switch(a%4){case0;m++;break;case1:m++;switch(b%3){default:m++;case0:m++;break;}}printf("%d\n",m);)A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch語(yǔ)句。因?yàn)閍=8,a%4=0,所以執(zhí)行case0后面的語(yǔ)句,將m加1,遇到break語(yǔ)句跳出switch。22、定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語(yǔ)句的輸出結(jié)果是()。for(i=0;i<3;i++)printf("%d",x[i][2-i]);A、159B、147C、357D、369標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查二維數(shù)組的使用。題中利用for循環(huán)來(lái)輸出x數(shù)組中的指定元素:①當(dāng)i=0時(shí),輸出x[0][2]=3;②當(dāng)i=1時(shí),輸出x[1][1]=5;③當(dāng)i=2時(shí),輸出x[2][0]=7。23、有下列程序段:typedefstructNODE{intnum;structNODE*next;}OLD;下列敘述中正確的是()。A、以上的說(shuō)明形式非法B、NODE是一個(gè)結(jié)構(gòu)體類(lèi)型C、OLD是一個(gè)結(jié)構(gòu)體類(lèi)型D、OLD是一個(gè)結(jié)構(gòu)體變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言允許用typedef說(shuō)明一種新類(lèi)型名,其一般形式為:typedef類(lèi)型名標(biāo)識(shí)符。typedef語(yǔ)句的作用僅僅是使“標(biāo)識(shí)符”來(lái)代表已存在的“類(lèi)型名”,并未產(chǎn)生新的數(shù)據(jù)類(lèi)型。原有類(lèi)型名依然有效。此題中,用使typedef定義了新的類(lèi)型OLD結(jié)構(gòu),所以O(shè)LD為結(jié)構(gòu)體類(lèi)型。24、下列數(shù)組定義中錯(cuò)誤的是()。A、intx[][3]={0};B、intx[2][3]={{1,2),{3,4},{5,6}};C、intX[][3]={{1,2,3),{4,5,6}};D、intx[2][3]={1,2,3,4,5,6};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化;②不分行的初始化;③部分?jǐn)?shù)組元素初始化;④省略第一維的定義,不省略第二維的定義。在選項(xiàng)B)中賦值號(hào)左邊定義了一個(gè)2行3列的二維數(shù)組,而右邊用3行2列的數(shù)字進(jìn)行賦初值。所以出現(xiàn)了邊界的越界溢出錯(cuò)誤。25、以下敘述錯(cuò)誤的是()。A、變量的作用域取決于變量定義語(yǔ)句的位置B、全局變量可以在函數(shù)以外的任何部位進(jìn)行定義C、局部變量的作用域可用于其他函數(shù)的調(diào)用D、一個(gè)變量說(shuō)明為static存儲(chǔ)類(lèi)型是為了限制其他編譯單元的引用標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用的變量作用域。全局變量不在任何函數(shù)體內(nèi)定義,作用域?yàn)檎麄€(gè)文件;局部變量在函數(shù)體內(nèi)定義,作用域僅為本次函數(shù);static類(lèi)型是靜態(tài)變量,為了方便其他編譯單元的引用,不能隨意改變。一個(gè)函數(shù)包含兩部分:函數(shù)首和函數(shù)體,函數(shù)體包括花括號(hào)內(nèi)的所有語(yǔ)句。26、若定義函數(shù)int*func(),則函數(shù)func的返回值為()。A、一個(gè)實(shí)數(shù)B、一個(gè)指向整型變量的指針C、一個(gè)指向整型函數(shù)的指針D、一個(gè)整型函數(shù)的入口地址標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是指針函數(shù)。指針函數(shù)定義的基本格式為:類(lèi)型說(shuō)明符*函數(shù)名()。其中,“類(lèi)型說(shuō)明符”表示返回的指針值所指向的數(shù)據(jù)類(lèi)型。27、若有定義inta[5],*p=a;則正確引用數(shù)組元素的是()。A、*&a[5]B、*a+2C、*(p+5)D、*(a+2)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查通過(guò)指針引用數(shù)組元素。用指針引用數(shù)組有以下3種形式:①(p+n)與(a+n)表示數(shù)組元素a[n]的地址;②*(p+n)與*(a+n)表示數(shù)組元素a[n];③p[n]=*(p+n),都表示數(shù)組元素a[n]。選項(xiàng)A)、B)沒(méi)有這種引用形式;選項(xiàng)C),*(p+5)是引用數(shù)組的第6個(gè)元素,而數(shù)組一共有5個(gè)元素,出現(xiàn)越界;選項(xiàng)D),*c(a+2)引用數(shù)組的第3個(gè)元素。28、以下對(duì)C語(yǔ)言中聯(lián)合類(lèi)型數(shù)據(jù)的正確敘述是()。A、定義了聯(lián)合變量后,即可引用該變量或該變量中的任意成員B、一個(gè)聯(lián)合變量中可以同時(shí)存放其所有成員C、聯(lián)合中的各個(gè)成員使用共同的存儲(chǔ)區(qū)域D、在向聯(lián)合中的一個(gè)成員進(jìn)行賦值時(shí),聯(lián)合中其他成員的值不會(huì)改變標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:聯(lián)合體的幾個(gè)特點(diǎn):①聯(lián)合體所占用的內(nèi)存空間為最長(zhǎng)的成員所占用的空間;②各個(gè)成員分量全部是從低地址方向開(kāi)始使用內(nèi)存單元;③聯(lián)合體中的空間在某一時(shí)刻只能保存某一個(gè)成員的數(shù)據(jù);④聯(lián)合體和結(jié)構(gòu)體可以任意嵌套。29、有以下函數(shù)定義:intfun(doublea,doubleb){returna*b;}若以下選項(xiàng)中所用變量都已正確定義并賦值,錯(cuò)誤的函數(shù)調(diào)用是()。A、if(fun(x,y)){……)B、z=fun(fun(x,y),fun(x,y));C、z=fun(fun(x,y)x,y);D、fun(x,y);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。選項(xiàng)C)中第一個(gè)參數(shù)的表達(dá)式不正確,因此不能得到正確的結(jié)果。30、執(zhí)行以下語(yǔ)句段后,xy的值是()。int*pt,xy;xy=200;pt=&xy;xy=*pt+30;A、200B、170C、260D、230標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查指針的運(yùn)用。通過(guò)pt=&xy,將pt指向xy所占的內(nèi)存地址,而*pt是指針pt所指向內(nèi)存單元中的內(nèi)容,即200,所以最后xy的值為230。31、下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[20],*p[4];inti,k=0;for(i=0;i<20;i++)a[i]=i;for(i=0;i<4;i++)p[i]=&a[i*i+1];for(i=0;i<4;i++){k=k+*p[i];}printf("%d",k);}A、10B、18C、6D、數(shù)組元素引用不合法,輸出結(jié)果不定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:第一個(gè)for循環(huán),給數(shù)組a的20個(gè)元素分別賦值0~19;第二個(gè)for循環(huán),給數(shù)組p賦值,p[0]=a[1]=1,p[1]=a[2]=2,p[2]=a[5]=5,p[3]=a[10]=10;第三個(gè)for循環(huán),將數(shù)組p中元素的值進(jìn)行累加,k=1+2+5+10=18。32、有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i)+1;}main(){inta[N]={1,2,3,4,5,6,7,8),i;fun(a,2);for(i=0;i<N/2;i++){printf("%d",a[i]);)printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、1313B、3234C、4234D、1234標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun(int*x,inti)的功能是把數(shù)組元素x[i]的值加1賦給x[0]。所以在主函數(shù)中執(zhí)行fun(a,2)后,數(shù)組元數(shù)a[0]的值等于4。然后在for循環(huán)語(yǔ)句中,輸出數(shù)組a中的前4個(gè)元素的值,分別是4,2,3,4。33、下面函數(shù)的功能是()。sss(s,t)char*s,*t;{while(*s);while(*t)*(s++)=*(t++);returns;}A、將字符串s復(fù)制到字符串t中B、比較兩個(gè)字符串的大小C、求字符串的長(zhǎng)度D、將字符串t續(xù)接到字符串S中標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查指針變量的運(yùn)用。本題中的函數(shù)實(shí)質(zhì)上是將字符串t續(xù)接到字符串s中。34、下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4;*y=s[m];m--;}voidmain(){inta[]={1,2,3,4,5),k,x;printf("\n");for(k=0;k<=4;k++){sub(a,&x);printf("%d,",x);}}A、5,4,3,2,1,B、1,2,3,4,5,C、0,0,0,0,0,D、4,4,4,4,4,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是靜態(tài)變量以及函數(shù)的實(shí)參與形參之間的地址值傳遞。sub()函數(shù)中定義的變量m是一個(gè)靜態(tài)變量,系統(tǒng)可為其分配固定的存儲(chǔ)空間,重復(fù)使用時(shí),變量的值保留;所以當(dāng)main()函數(shù)中的for循環(huán)中語(yǔ)句sub(a,&x);執(zhí)行時(shí),sub函數(shù)中m的值依次是4,3,2,1,0;因?yàn)樽兞縳進(jìn)行的是地址值傳遞,所以最后依次輸出的是數(shù)組a的元素a[4]、a[3]、a[2]、a[1]、a[0]。35、設(shè)q1和q2是指向一個(gè)int型一維數(shù)組的指針變量,k為float型變量,下列不能正確執(zhí)行的語(yǔ)句是()。A、k=*q1*(*q2);B、q1=k;C、q1=q2;D、k=*q1+*q2;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查指針變量的賦值操作。選項(xiàng)A)是將指針q1和q2所指向的變量值相乘,然后賦給k;選項(xiàng)B)中,noat型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進(jìn)行賦值運(yùn)算;選項(xiàng)C)中,是兩個(gè)指針變量之間的賦值;選項(xiàng)D)中,是兩個(gè)指針型變量所指向的兩個(gè)int型數(shù)據(jù)相加。36、下列程序的輸出結(jié)果為()。main(){unionun{char*name;intage;intpay;}s;s.name="zhaoming":s.a(chǎn)ge=32;s.pay=3000;printf("%d\n",s.a(chǎn)ge);}A、32B、3000C、0D、不確定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是聯(lián)合體的有關(guān)概念。因?yàn)槁?lián)合體是各個(gè)成員共享一段存儲(chǔ)空間,此段存儲(chǔ)空間最終存放的是最后存入的成員的值,所以題目中輸出s.a(chǎn)ge實(shí)際上輸出了最后存入的3000,因?yàn)?000已經(jīng)把原來(lái)存入的s.a(chǎn)ge(32)的值覆蓋。37、以下有關(guān)宏替換的敘述不正確的是()。A、使用宏定義可以嵌套B、宏定義語(yǔ)句不進(jìn)行語(yǔ)法檢查C、雙引號(hào)中出現(xiàn)的宏名不替換D、宏名必須用大寫(xiě)字母表示標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查宏替換的規(guī)則。宏替換有兩類(lèi):簡(jiǎn)單的字符替換和帶參數(shù)的宏替換。使用宏應(yīng)注意:①宏定義僅僅是符號(hào)替換,不是賦值語(yǔ)句,因此不做語(yǔ)法檢查;②為了區(qū)別程序中其他的標(biāo)示符,宏名的定義通常用大寫(xiě)字母,但不是必須用大寫(xiě);③雙引號(hào)中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。38、有以下程序:#include<stdio.h>intb=3;intfun(int*k){b=*k+b;return(b);}main(){inta,[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){b=fun(&a[i])+b;printf("%d",b);)printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、1214B、1232C、1014D、1020標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:i=2時(shí),fun(&a[2])返回值是b=b+a[1]=3+3=6,b=b+b=6+6=12;i=3時(shí),fun(&a[3])返回值是b=b+a[3]=12+4=16,b=b+b=16+16=32。39、已知函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer代表的是()。A、一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)B、一個(gè)文件指針,指向要讀的文件C、一個(gè)指針,是指向的輸入數(shù)據(jù)放在內(nèi)存中的起始位置D、一個(gè)存儲(chǔ)區(qū),存放要讀的數(shù)據(jù)項(xiàng)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說(shuō)明:“buffer”是一個(gè)指針,對(duì)fread來(lái)說(shuō),它是讀入數(shù)據(jù)的存放地址;“size”是要讀寫(xiě)的字節(jié)數(shù);“count”是要進(jìn)行讀寫(xiě)多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng);“fp”是指文件型指針。二、程序填空題(本題共1題,每題1.0分,共1分。)40、函數(shù)fun的功能是:將形參a所指數(shù)組中的前半部分元素中的值和后半部分元素中的值對(duì)換。形參n中存放數(shù)組中數(shù)據(jù)的個(gè)數(shù),若n為奇數(shù),則中間的元素不動(dòng)。例如:若a所指數(shù)組中的數(shù)據(jù)依次為:1、2、3、4、5、6、7、8、9,則調(diào)換后為:6、7、8、9、5、1、2、3、4。請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#defineN9voidfun(inta[],intn){inti,t,p;/**********found**********/p=(n%2==0)?n/2:n/2+___1____;for(i=0;i<n/2;i++){t=a[i];/**********found**********/a[i]=a[p+___2___];/**********found**********/___3___=t;}}main(){intb[N]={1,2,3,4,5,6,7,8,9},i;printf("\nTheoriginaldata:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printf("\n");fun(b,N);printf("\nThedataaftermoving:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printf("\n");}標(biāo)準(zhǔn)答案:(1)1(2)i(3)a[p+i]知識(shí)點(diǎn)解析:第一空:“p=(n%2==0)?n/2:n/2+____1____;”和“a[i]=a[p+____2____];"“n%2==0”判斷是否是偶數(shù),a[i]和a[p+____2____]交換,如果n是偶數(shù),a[0]和a[n/2]交換,如果n是奇數(shù),那么a[0]和a[n/2+1]交換,依此類(lèi)推,故n為偶數(shù)時(shí)a[i]和a[i+n/2]交換,n為奇數(shù)時(shí)a[i]和a[i+n/2+1]交換。因此如果n是奇數(shù)的話(huà),p應(yīng)該等于n/2+1,故第一空處應(yīng)為“1”。第二空:由上分析可知,a[i]和a[i+p]交換,故第二空應(yīng)為“i”。第三空:“t=a[i];a[i]=a[p+i];”,故第三處應(yīng)該是把a(bǔ)[i]賦值給a[p+i],a[i]保存在t中,故第三空應(yīng)為“a[p+i]”。三、程序修改題(本題共1題,每題1.0分,共1分。)41、給定程序MODI1.C中函數(shù)fun的功能是:從低位開(kāi)始取出長(zhǎng)整型變量s中偶數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)S中的數(shù)為:7654321時(shí),t中的數(shù)為:642。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#inClude<stdio.h>/**********found**********/Voidfun(longs,longt){longs1=10;s/=10;*t=s%10;/**********found**********/while(s<0){s=s/100;*t=s%10*s1+*t;s1=s1*10;}}main(){longs,t;printf("\nPleaseenters:");scanf("%1d",&s);fun(s,&t);printf("Thereresultis:%id\n",t);}標(biāo)準(zhǔn)答案:(1)voidfun(longs,long*t)(2)while(s>0)知識(shí)點(diǎn)解析:(1)第一個(gè)標(biāo)識(shí)下的形參t被定義為一個(gè)long型變量,而對(duì)應(yīng)的主函數(shù)中的實(shí)參卻是一個(gè)地址值。因此,t在函數(shù)定義中應(yīng)該被定義為一個(gè)指針變量,即“voidfun(longs,longt)”改為“voidfun(longs,long*t)”。(2)第二個(gè)標(biāo)識(shí)下的while循環(huán)控制表達(dá)式“s<0”要求s小于0才進(jìn)入循環(huán)。而s的值總是大于0,因此將“while(s<0)”改為“while(s>0)”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)42、請(qǐng)編寫(xiě)一個(gè)函數(shù)voidfun(chara[],charb[],intn),其功能是:刪除一個(gè)字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數(shù)組中,n中存放指定的下標(biāo)。例如,輸入一個(gè)字符串:World,然后輸入3,則調(diào)用該函數(shù)后的結(jié)果為:Word。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。#include<stdio.h>#include<string.h>#defitieLEN20voidfun(chara[],charb[],intn){}main(){charstr1[LEN],Str2[LEN];intn;voidNONO();printf("Enterthestring:\n");gets(str1);printf("Enterthepositionofthestringdeleted:¨);scanf("%d¨,&n);fun(str1,str2,n);printf("Thenewstringis:%s\n",Str2);NONO();}voidNONO(){/*本函數(shù)用于打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/charstr1[LEN],str2[LEN];inti,n;FILE*rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%s%d",str1,&n);fun(str1,str2,n);fprintf(wf,"%s\n",Str2);}fclose(rf);fclose(wf);}標(biāo)準(zhǔn)答案:intp,m=0;for(p=0;p<LEN;p++)if(p!=n)//如果字符下標(biāo)不滿(mǎn)足題目要求的標(biāo)志n{b[m]=a[p];//原始串的字符賦值給新串bm++:}b[m]=’\0’;//新串末尾加上結(jié)束符知識(shí)點(diǎn)解析:進(jìn)入fun函數(shù),根據(jù)前面的分析:通過(guò)循環(huán),對(duì)字符串a(chǎn)中各字符逐個(gè)考查,若該字符串下標(biāo)p不等于輸入的標(biāo)志位n,那么就順序放到新串b中,否則就不存放。最后,對(duì)所有字符處理完后,要注意的就是在新字符串b的末尾加上串結(jié)束符’\0’。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第5套一、程序填空題(本題共1題,每題1.0分,共1分。)1、請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從鍵盤(pán)輸入3個(gè)整數(shù),然后找出最大的數(shù)并輸出。例如,輸入:12,45,43,最大值為45。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在main函數(shù)的橫線(xiàn)上填入所編寫(xiě)的若干表達(dá)式或語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>main(){inta,b,c,max;clrscr();printf("\nlnputthreenumbers:\n");scanf("%d,%d,%d",&a,&b,&c);printf("Thethreenumbersare:%d,%d,%d\n",a,b,c);if(a>b)【】;else【】;if(max<c)【】;printf("max=%d\n",max);}標(biāo)準(zhǔn)答案:max=amax=bmax=c知識(shí)點(diǎn)解析:第一空:如果a大于b,則a為a,b中的最大值,將a賦給inax。第二空:如果a小于b,則b為a,b中的最大值,將b賦給max。第三空:最后將a,b中的最大值與c進(jìn)行比較,如果c更大,則c為3個(gè)數(shù)中的最大數(shù),將c賦給max,否則最大數(shù)max不變。二、程序修改題(本題共1題,每題1.0分,共1分。)2、下列給定的程序中,函數(shù)fun()的功能是:判斷字符ch是否與str所指字符串中的某個(gè)字符相同;若相同,則什么也不做,若相同,則將其插在申的最后。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>/*************found**************/voidfun(charstr,charch){while(*str&&*str!=ch)str++;/*************found**************/if(*str==ch){str[0]=ch;/*************found**************/str[1]=’0’;}}main(){chars[81],c;clrscr();printf("\nPleaseenterastrzng:");gets(s);printf("\nPleaseenterthecharactertosearch:");c=getchar();fun(s,c);printf("\nTheresultis%s\n",s);}標(biāo)準(zhǔn)答案:(1)錯(cuò)誤;voidfun(charstr,charch)正確:voidfun(char*str,charch)(2)錯(cuò)誤:if(*str==ch)正確:if(*str==’\0’)(3)錯(cuò)誤;str[1]=’0’;正確:str[1]=’\0’;知識(shí)點(diǎn)解析:該題的重點(diǎn)就是在while的循環(huán)嵌套語(yǔ)句中,由題干信息“若相同,則什么也不做”很容易就能看出if(*str==ch)后面的執(zhí)行語(yǔ)句是錯(cuò)誤的。另外,void指針具有一般性,它們可以指向任何類(lèi)型的數(shù)據(jù)。但目前絕大多數(shù)C編譯所提供的這類(lèi)函數(shù)都返回char指針,再由題目中的定義得出voidfun(charstr,charch)的錯(cuò)誤信息;str[1]=’0’;是一個(gè)簡(jiǎn)單的語(yǔ)法錯(cuò)誤。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、編寫(xiě)程序,實(shí)現(xiàn)矩陣(3行3列)的轉(zhuǎn)置(即行列互換)。例如,若輸入下面的矩陣:100200300400500600700800900則程序輸出:100400700200500800300600900注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>intfun(intarray[3][3]){}main(){inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};clrscr();for(i-0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("\n");}fun(array);printf("Convertedarray:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("\n");}}標(biāo)準(zhǔn)答案:intfun(intarray[3][3]){inti,j,t;for(i=0;i<3;i++)/*將右上三角和左下三角對(duì)換,實(shí)現(xiàn)行列互換*/for(j=i+1;j<3;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}知識(shí)點(diǎn)解析:注意對(duì)矩陣轉(zhuǎn)置后仍然存回其本身時(shí),只能循環(huán)矩陣中的一個(gè)角(本程序是右上半三角)??刂朴疑习肴堑姆椒ㄊ窃诘?個(gè)循環(huán)中j從i+1或i開(kāi)始,左下半三角的方法是在第2個(gè)循環(huán)中寫(xiě)成for(j=0;j<i;j++),若要控制所有元素在第2個(gè)循環(huán)要寫(xiě)成for(j=0;j<3;j++)。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第6套一、程序填空題(本題共1題,每題1.0分,共1分。)1、給定程序中已建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,在main函數(shù)中將多次調(diào)用fun函數(shù),每調(diào)用一次fun函數(shù),輸出鏈表尾部結(jié)點(diǎn)中的數(shù)據(jù),并釋放該結(jié)點(diǎn),使鏈表縮短。請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKI.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#include#defineN8typedefstructlist{intdata;struct1ist*next;}SLIST;voidfun(SLIST*p){SLIST*t,*s;t=p->next;s=p;while(t->next!=NULL){s=t;/************found***********/t=t->【1】;}/**********found************/printf(”%d”,【2】);s->next=NULL;/***********found****************/free(【3】);}SLIST*Crearlist(int*a){SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST));for(i=0;idata=a[i];p->next=q;p=q;}P->next=0;returnh;}voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printf(”\nThelistiSNULL!\n”);else(printf(”\nHead”);do{printf(”->%d”,p->data);p=p->next;}while(p!=NULL);printf(”->End\n”);}}main(){SLIST*head;inta[N]={11,12,15,18,19,22,25,29};head=creatlist(a);printf(”\nOutputfromhead:\n”);outlist(head);printf(”\nOutputfromtail:\n”);while(head->next!=NULL){fun(head);printf(”\n\n”);print(”\nOutputfromheadagain:\n”),outlist(head);}}標(biāo)準(zhǔn)答案:(1)next(2)t一>data(3)t知識(shí)點(diǎn)解析:第一空:fun函數(shù)中的循環(huán)“while(I->next!=NULL)"目的是找到尾結(jié)點(diǎn),利用結(jié)點(diǎn)變量s和t,s指向當(dāng)前節(jié)點(diǎn),t不斷指向下一個(gè)結(jié)點(diǎn),因此第一空處應(yīng)該是“t=t->next;"。第二空:這里是輸出尾結(jié)點(diǎn)中的數(shù)據(jù),已經(jīng)利用循環(huán)找到了尾結(jié)點(diǎn)t,t的數(shù)據(jù)是t->data,因此第二空處應(yīng)該為“printf("%d",t->dam);"。第三空:輸出尾結(jié)點(diǎn)數(shù)據(jù)之后刪除尾結(jié)點(diǎn),使用free,又因?yàn)槲步Y(jié)點(diǎn)是t,因此第三空處應(yīng)該為“free(t);"。二、程序修改題(本題共1題,每題1.0分,共1分。)2、給定程序MODll.C中函數(shù)fun的功能是:將長(zhǎng)整型數(shù)中每一位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為:87653142時(shí),t中的數(shù)為:7531。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#includevoidfun(10ngs,long*t){intd;longs1=1;/************found************/t=0;while(s>0){d=s%10;/************found************/if(d%2==0){*t=d*s1+*t;s1*=10;}s/=10;}}main(){longs,t;printf("\nPleaseenters:");scanf("%id",&s);fun(s,&t);printf("Theresultis:%idkn",t);}標(biāo)準(zhǔn)答案:(1)*t=0;(2)if(d%2!=0)知識(shí)點(diǎn)解析:(1)第一個(gè)錯(cuò)誤標(biāo)識(shí)下的“t=0"語(yǔ)句中的t,根據(jù)fun函數(shù)定義“voidfun(10ngs,long*t)",它應(yīng)該是個(gè)長(zhǎng)整型的指針變量,所以“t=0"語(yǔ)句中的t只能取地址值,而不能取長(zhǎng)整數(shù),因此“t=0;"改為“*t=0;"。(2)判斷d是否為奇數(shù),即判斷“d%21=0";而“d%2==0"是判斷d是否偶數(shù)的方法,因此第二個(gè)標(biāo)識(shí)下“if(d%2==0)"改為“if(d%21;0)"。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、函數(shù)fun的功能是:將a、b中的兩個(gè)兩位正整數(shù)合并形成一個(gè)新的整數(shù)放在c中。合并的方式是;將a中的十位和個(gè)位數(shù)依次放在變量c的千位和十位上,b中的十位和個(gè)位數(shù)依次放在變量c的個(gè)位和百位上。例如,當(dāng)a=45,b=12。調(diào)用該函數(shù)后,c=425l。注意:部分源程序存在文件PROGl.C中。數(shù)據(jù)文件IN.DAT中的數(shù)據(jù)不得修改。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。#includevoidfun(inta,intb,long*c){}voidNONO()(/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;Inti,a,b;longc;rf=fopen("in.clat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);}main(){inta,b;longc;voidNONO();printf("Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld\n",c);NONO();}標(biāo)準(zhǔn)答案:*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);知識(shí)點(diǎn)解析:(1)分解兩位數(shù)的正整數(shù)n的個(gè)位和十位數(shù),可用n%10和n/10實(shí)現(xiàn)。(2)設(shè)x0、x1、x2、x3為一位數(shù),則x0、x1×10、x2×100、x3×1000,可以分別使x0、x1、x2、x3構(gòu)成個(gè)、十、百、千帶權(quán)數(shù),而x0+x1×10+x2×100+x3×1000構(gòu)成四位數(shù)。本題最多只考慮四位數(shù)。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第7套一、程序填空題(本題共1題,每題1.0分,共1分。)1、請(qǐng)補(bǔ)充函數(shù)proc(),其功能是:計(jì)算并輸出給定10個(gè)數(shù)的方差。例如,給定的10個(gè)數(shù)為12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0,輸出為s=8.877500。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線(xiàn)上填人所編寫(xiě)的若干表達(dá)式或語(yǔ)句。試題程序:#include#includedoubleproc(doublex[10]){inti;doubleavg=0.0;doublesum=0.0;doubleabs=0.0;doublesd;for(i=0;i<10;i++)【1】;avg=sum/10;for(i=0;i<10;i++)【2】;sd=【3】;returnsd;}voidmain(){doubles,str[10]={12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0};inti;printf(”\nTheoriginaldatais:\n”);for(i=0;i<10;i++)printf(”%6.If”,str[i]);printf(”\n\n”);s=proc(str);printf(”s=%fkn\n”,s);}標(biāo)準(zhǔn)答案:【1】sum+=x【i】【2】abs+=(x[i];一avg)*(x[i]一avg)【3】sqrt(abs/10)知識(shí)點(diǎn)解析:由函數(shù)proc()可知,變量sum中存放n個(gè)數(shù)的和,因此,【1】處填“sum+=x[i]”;然后求其平方差,因此,【2】處填“abs+=(x[i]-avg)*(x[i]-avg)”;最后求10個(gè)數(shù)的方差,因此,【3】處填“sqrt(abs/10)”。二、程序修改題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)proc()的功能是:從字符串str中,刪除所有大寫(xiě)字母’F’。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不

溫馨提示

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

評(píng)論

0/150

提交評(píng)論