2022年湖北文理學院《C語言程序設計》專升本模擬十二套_第1頁
2022年湖北文理學院《C語言程序設計》專升本模擬十二套_第2頁
2022年湖北文理學院《C語言程序設計》專升本模擬十二套_第3頁
2022年湖北文理學院《C語言程序設計》專升本模擬十二套_第4頁
2022年湖北文理學院《C語言程序設計》專升本模擬十二套_第5頁
已閱讀5頁,還剩242頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

一、單項選擇題(共20題,每題2分,共計40分)2022年《C語言程序設計》專升本精選模擬(一)題號一二三總分得分●答案一律寫在答題紙上,寫在試卷上無效●試卷不得帶出考場●考試中途不能無端離場得分評卷人A、使用while循環(huán)時,循環(huán)變量初始化的操作應在循環(huán)語句之前完成B、while循環(huán)是先判斷表達式,后執(zhí)行循環(huán)體語句C、do-while和for循環(huán)均是先執(zhí)行循環(huán)體語句,后判斷表達式D、for,while和for-while循環(huán)中的循環(huán)體均可以由空語句構成()2、若有定義語句"inti=2,j=3;",則表達式i/i的結果是。C、0.66667D、0.66666667 。 。A、算術表達式B、非法表達式C、字符串表達式D、關系表達式{第2/11頁p=&data;,則對data中的a域的正確引用是()6、下面用戶自定義的標識符中,合法};則下面語句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的輸出結果是A、159B、147C、357D、369()8、在循環(huán)結構中,可以使得同一組語句一次也不執(zhí)行。A、當型循環(huán)B、直到型循環(huán)C、都不能實現()9、以下能正確定義字符串的語句是。()10、著有下列定義,則()是對a數組元素地址的正確引用。inta[5],*p=a;()11、是構成c語言程序的基本單位。B、過程C、子程序D、子例程A、對函數func的定義。B、對函數func的調用。C、對函數func的原型說明。D、不合法的。()13、下列程序的運行結果是。#include<stdio.h>voidsub(int*s,int*y){voidmain(){printf("\n");{sub(a,&x);printf("%d,",x);{charname[10];voidf(char*name,intnum){structstus[2]={{"sundan",20044},{"penghua",20045}};num=s[0].num;}main(){structstus[2]={{"yangsan",20041},{"lisiguo",20042}},*p;p=&s[1]:f(p->name,p->num);printf("%s%d\n",p->name,p->num);}程序運行后的輸出結果是,第3/11頁第4/11頁C、LiSiGuo20042D、YangSan20041#includes<stdio.h>main(){{b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序運行后的輸出結果是A、9,18B、8,11C、7,11D、10,14()16、c語言中不可以嵌套的是A、函數調用B、函數定義C、循環(huán)語句D、選擇語句{intnum;{p.num=s[1].num;}main(){}程序運行后的輸出結果是。A、20045537第5/11頁二、填空題(共10題,每題2分,共計20分)二、填空題(共10題,每題2分,共計20分)()18、下述程序執(zhí)行的輸出結果是。main(){strcpy(a,"are");}A、使用typedef定義新類型名后,新類型名與原類型名實際上是等價的B、結構體類型中的各個成分均不能是數組或指針C、結構體類型的變量,不能在聲明結構體類型組成時一起定義D、元素為結構體類型的數組,只能在聲明過結構體類型之后,單獨進行定義()20、c語言中,定義結構體的保留字是得分評卷人21、執(zhí)行以下語句段intfun(intx){return((x>0)?fun(x-1)+fun(x-2):1);}i的值為main(){{case0:a--;第6/11頁break;break;case2:a=a+5break}23、結構化程序設計的3種基本結構是:()結構、選擇結構、循環(huán)結構,這三種基本結構構成了復雜的c語言程序。25、下列程序段的運行結果是。floatb=80,*q;printf("%f",*q);26、函數f的形參a為一個10×10的二維數組,n的值為5,以下程序段的運行結果為 。f(inta[][20],intn)j=n/2+1;a[1][j]=1;{i=i-1;j=j+1;if(i<1&&j>n){i=i+2;j=j-1;}{}if(a[i][j]==0)a[i][j]=k;{i=i+2;j=j-1;a[i][j]=k;}main(){inta[20][20]={0},n,i,j;f(a,n);第7/11頁三、三、簡答題(共3題,每題分值不等,共計40分){printf("\n");},27、ferror函數用來檢測文件讀寫時是否發(fā)生錯誤,若未發(fā)生讀寫錯誤,則返回值是,。28、c語言中與指針有關的兩個運算符是&與。29、下列程序段的運行結果是。{charname[20];}a={1021103,"jiangping",'m',85.5};main(){printf(“%.2f\n”,a.score)}{{得分評卷人32、編寫程序:假設獎金稅率如下(a代表獎金,r代表稅率)500<=a<1000r=5%1000<=a<2000r=8%2000<=a<3000r=10%3000<=ar=15%輸入的一個獎金數,求稅率和應繳稅款以及實得的獎金數(扣除獎金稅后)。(本題14分)33、編寫程序:從鍵盤輸入n(n<10)個學生的學號(學號為4位的整數,從1000開始)、成績并存入結構數組中,按成績從低到高排序并輸出排序后的學生信息。輸入輸出示例:括號內為說明,無需輸入輸出輸出樣例:第8/11頁第9/11頁[要點透析]for循環(huán)是先判斷表達式,后執(zhí)行循環(huán)體語句。4、C9、D【解析】本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,結構體類型中的成分可以是數20、B第10/11頁27、0#零intmain(){inti,j,result;for(i=1;i<10;i++){for(j=1;j<=i;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d}printf("\n");/*每一行后換行*/表示左對齊,占3位*/【解析】分行與列考慮,共9行9列,i控制行,j控制列。32、題中r代表稅率,t代表稅款,b代表實得獎金數。此為分段稅率,用switch...case語句方便計算。當輸入a后,利用整除的特性,把獎金a的值除以500取商作為switch語句的判斷條件。#include<stdio.h>main(){floata,r,t,b;if(a>=3000)c=6elsec=a/500;switch(c){break;break;case2:case3:r=0.break;case4:case5:r=0.1;break;case6:r=0.15;break;t=a*r;b=a-t;}typedefstructstudent{no;intmain(){n,i,j;temp;{}{{if(s[j].score>s[j+1].score)//{temp=s[j].score;s[j].score=s[j+1].score;對分數排序//分數排序完畢后,學號也要交換temp=s[j].no;s[j+1].no=temp;}{}j第1/11頁一、單項選擇題(共20題,每題2分,共計40分)題號一二三總分得分●答案一律寫在答題紙上,寫在試卷上無效●試卷不得帶出考場●考試中途不能無端離場得分評卷人A、得到流式文件中的當前位置B、移到流式文件的位置指針C、初始化流式文件的位置指針D、以上答案均正確()2、設函數中有整型變量a,為保證其在未賦初值的情況下初值為0,應選擇的存儲類別是 g()3、運行下面程序時,從鍵盤輸入字母h,則輸出結果是#include<stdio.h>main(){switch(ch){case’h’:printf("hello!\n");case’g’:printf("goodmorning!\n");default:printf("byeGoodMoring!Goodmorning!Bye_Bye!第2/11頁Bye_Bye!()4、下列程序的運行結果是#include<stdio.h>{intx=5,a=1,b=2,c=5,d=0;if(a<b)if(b!=3)if(!c)x=1;elseif(d)x=1;elsex=-1;}D、不確定的值{}則fun函數返回值足A、不確定的值C、形參p中存放的值D、形參p的地址值11.0,b賦值22.0,e賦值33.0,不正確的輸入形式是A、112233B、11.0,22.0,33.0()7、有字符數組a[80]和b[80],則正確的輸出語句是()8、在浮點數編碼表示中,(1)在機器數中不出現,是隱含的。()9、下面各語句行中,能正確進行給字符串賦值操作的語句行是第3/11頁B、chars[5]={’A','B','C','D','E'};D、char*s;scanf("%s",*s);()10、以下對一維數組c進行正確的定義初始化的語句是。()11、若有以下調用語句,則不正確的fun函數的首部是,main(){fun(n,&a[9]);}A、voidfun(intm,intD、voidfun(intn,intx){while(*p!=’\0')p++;return(p-s);}如果在主程序中用下面的語句調用上述函數,則輸出結果為printf(""%d\n"",f(""goodbey!""));()14、以下關于c語言數據類型使用的敘述中錯誤的是。A、若要準確無誤差地表示自然數,應使用整數類型B、若要保存帶權多位小數的數據,應使用雙精度類型C、若要處理如“人員信息”等含有不同類型的相關數據,應自定義結構體類型第4/11頁D、若只處理“真”和“假”兩種邏輯值,應使用邏輯類型#include<stdio.h>main(){chara[]="morning",t;for(i=1;i<7;i++){if(a[j]<a[i]){j=i;printf("%s",a);若a、b為int型變量,則執(zhí)行以下語句后a的值為()b=10;{b-=a;a++;}while(b-->0);()17、遞歸算法的執(zhí)行過程一般來說可先后分成和兩個階段。()18、選擇出合法的if語句(設intx,a,b,c:)A、if(a=b)x++;B、if(a=<b)第5/11頁二、填空題(共10題,每題2分,共計20分)二、填空題(共10題,每題2分,共計20分)main(){程序運行后的輸出結果是。A、22得分評卷人則表達式(++a==b--)?++a:--b的值是22、下列給定程序中函數fun()的功能是:用遞歸算法計算斐波拉契數列中第n項的值。從第1項起,斐波拉契數列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項的斐波拉契數值為13。得更改程序的結構!試題程序:{return(fun(g-1)+fun(g-2));)voidmain(){printf("n=%d\n",n);printf("fib=%d\nkn",fib);}23、下列程序段的運行結果是main(){{t++:if(t>4)break;}printf("%d\n",m);24、在c語言中,將字符串中大寫字母轉換成小寫字母的函數是25、下列程序的功能是計算圓的面積,將程序補充完整。#definePI=3.14159main(){ s=PI*r*r;}26、若定義了inta[10],將數組元素中最后一個元素”賦值為10”語句是。27、局部變量又稱內部變量,是在函數定義的變量28、下列程序段的運行結果是main(){intsub(int,int);intsub(intx,inty){returnz;}29、執(zhí)行以下程序的輸出結果是,#include<stdion.h>main(){inti,n[4]={1};{printf("%d",n[i]);}30、以下程序運行后的輸出結果是{};第6/11頁第7/11頁三、簡答題三、簡答題(共3題,每題分值不等,共計40分){structnodes[3]={{1,’\0'},{2,’\0'},{3,’\0'}},*p,*q,*r;s[0].next=s+1;s[1].next=s+2;s[2].next=s;p=S;q=p->next;r=q->next;sum+=r->next->next->num;printf("%d\n",sum);得分評卷人33、編寫程序:從鍵盤輸入n(n<10)個學生的學號(學號為4位的整數,從1000開始)、成績并存入結構數組中,查找并輸出成績最高的學生信息。輸入輸出示例:括號內為說明,無需輸入輸出3(n=3)輸出樣例:100190(本題16分)第8/11頁參考答案【解析】存儲類說明符有auto、register、static、extern和typedef。①auto和register將聲明的對象說明為自動存儲類對象,這些對象僅可用在函數中。這種聲明也具有定義的作用,并將預留存儲空間。register說明的聲明等價于auto說明的聲明,所不同的是,register暗示了聲明的對象將被頻繁地訪問,將盡可能存儲在寄存器中。如果一個對象被聲明為register,則將不能對它應用一元運算符&,聲明為register但實際按照auto類型處理的對象的地址進行計算是非法的。②static將聲明的對象說明為靜態(tài)存儲類。這種對象可以用在函數內部或者函數外部。在函數內部,該說明符將引起存儲空間的分配,具有定義的作用。在函數外部,該說明符將引起聲明對象為具有內部鏈接。另外,若將其定義為static類型,則其初值默認為0。③函數內部的extern聲明表明,被聲明的對象的存儲空間定義在其他地方。在函數外部,說明聲明的對象具有外部鏈接。④typedef說明符并不會為對象預留存留空間?!窘馕觥勘绢}主要對switch語句進行了考查。switch語句的執(zhí)行過程為:進入switch結構后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為入口,執(zhí)行switch結構中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時則執(zhí)行default后面的語句。本題中ch為字符’H’,所以case’H’條件中的語句將被執(zhí)行,由于沒有break語句,所以case’C’后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行了?!窘馕觥勘绢}考查ifelse語句。第1個if語句,先判斷條件,發(fā)現a<b條件成立,執(zhí)行下列的語句;第2個汀語句,先判斷條件,發(fā)現b!=3條件成立,執(zhí)行下列的語句;第3個汀語句,先判斷條件,c=5,則!c條件不成立,執(zhí)行與其配對的else語句:第4個if語句,先判斷條件,d=0,條件不成立,則x=-1,結束循環(huán)?!窘馕觥扛↑c數編碼表示中,符號、階碼和尾數均有體現,只有基數是固定的,無需出現?!窘馕觥扛鶕骱瘶渲械暮瘮嫡{用可知,第一個實參為整型數據,第二個實參為整型數組中一個元素的地址值。因此函數fun()的第二個形參應該為一個指針,故應該選擇C。實參不是將整個數組傳遞給形參,故選項A和B不正確;選項D的第二個形參的數據類型與實參的數據類型不符?!窘馕觥勘绢}考查了一維數組元素的引用方法。題中數組a為一字符串數組,通過數組首地址和下標可以引用數組中的每個元素。因為字符數組相當于字符串【解析】當第一次進入循環(huán)時a=1,先執(zhí)行"b-=a;a++;"此時b=9,a=2;然后判定b是否小于0。如果b小于0,斷續(xù)執(zhí)行循環(huán)體;如果b不小于0,循環(huán)終止。完成判定后b自減1。如此循環(huán)體被執(zhí)行四次,最終因b=-3<0而終止。循環(huán)終止能采用遞歸描述的算法通常有這樣的特征:為求解規(guī)模為N的問題,設法將它分解成一些規(guī)模較小的問題,然后從這些小問題的解方便地構造出大問題的解,并且這些規(guī)模較小的問題也能采用同樣的分解和綜合方法,分解成規(guī)模更小的問題,并從這些更小問題的解構造出規(guī)模稍大問題的解。特別地,當規(guī)模N=1時,能直接得到解。遞推算法的執(zhí)行過程分遞推和回歸兩個階段。在遞推階段,把較復雜的問題的求解推到比原問題簡單一些的問題的求解;在回歸階段,當獲得最簡單情況的解后,逐級返回,依次獲得稍復雜問題的解?!窘馕觥緼雖然是賦值語句,但是在邏輯運算中自動將賦值語句的結果當作邏輯值,方法是,如果賦值語句的結果是非零值則當作邏輯真,否則當作邏輯假。C語言中關系運算符有<(小于)、>(大于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)等六種,可見其他的條件表達式中的關系符寫錯了?!窘馕觥緾語言中以’\0'作為字符串的結束符,且strlen()函數計算的是’\0'字符前的所有字符的個數。數組定義以后系統(tǒng)就為其分配相應大小的內存空間,而不論其中有沒有內容。20、Bcasel:case2:returnl;26、a[9]=1030、5三、簡答題31、#include"stdio.h"main(){for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);{for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");]typedefstruct{charname[20];voidinput(Stu*stu);voidoutput(Stu*stu);intmain(){printf("請輸入5個學生的信息:姓名性別年齡:\n");input(stu);printf("5個學生的信息如下:\n姓名性別年齡\n");output(stu);return0;voidinput(Stu*stu){scanf("%s%s%d",stu[i].name,stu[i].sex,&(stu[i].age))}voidoutput(Stu*stu){printf("%s%s%d\n",stu[i].name,stu[i].sex,stu[i].age);}typedefstructstudent{no;no;intmain(){第10/11頁第11/11頁{scanf(“%d”,&s[i].no);scanf(“%d”,&s[i].score)max=s[0].score;if(max<s[i].score)max=s[i].score;}{if(s[i].score==max)printf("%d",s[i].no);}printf("%d",max);return0第1/12頁一、單項選擇題(共20題,每題2分,共計40分)2022年《C語言程序設計》專升本精選模擬(三)題號一二三總分得分●答案一律寫在答題紙上,寫在試卷上無效●試卷不得帶出考場●考試中途不能無端離場得分評卷人()1、文件的存取方式是由文件的性質和用戶使用文件的情況確定的,一般文件的存取方式有兩種A、直接存取和間接存取B、順序存取和隨機存取C、只讀存取和讀寫存取值的數據類型是值的數據類型是D、不確定()3、以下程序的輸出結果是#include<stdio.h>main(){if((++a<0)&&!(b--<=0))printf("%d,%d\n",a,b);elseprintf("%d,%d\n",b,a);()4、從循環(huán)體內某一層跳出,繼續(xù)執(zhí)行循環(huán)外的語句是第2/12頁()5、字符串指針變量中存入的是A、字符串B、字符串的首地址C、第一個字符D、字符串變量()6、執(zhí)行下列語句后變量x和y的值是_。y=10;x=y++;()7、以下對一維數組c進行正確的定義初始化的語句是。()8、c語言的switch語句中case后A、只能為常量B、只能為常量或常量表達式C、可為常量或表達式或有確定值的變量及表達式D、可為任何量或表達式()9、下列字符串是標識符的是。則下面語句的輸出結果是()11、設有說明double(*pl)[n];其中標識符p1是A、N個指向double型變量的指針。B、指向N個double型變量的函數指針。C、一個指向由N個double型元素組成的一維數組的指針。第3/12頁D、具有N個指針元素的一維指針數組,每個元素都只能指向double型量。A、操作數乘以2B、操作數除以2C、操作數除以4D、操作數乘以4()13、關于指針概念說法不正確的是。A、一個指針變量只能指向同一類型變量B、一個變量的地址稱為該變量的指針C、只有同一類型變量的地址才能放到指向該類型變量的指針變量之中D、指針變量可以由整數賦,不能用浮點賦struct{{5,"abc",7,"def",9,"ghk",*p=a則值為6的表達式是A、它們的運算對象可以是任何變量和常量B、它們的運算對象可以是char型變量和int型變量,但不能是float型變量C、它們的運算對象可以是int型變量,但不能是double型變量和float型變量D、它們的運算對象可以是char型變量、int型變量和float型變量main(){while(i<10){if(i<1)continue;if(i==5)break;i++;第4/12頁二、填空題(共10題,每題2分,共計20分)A二、填空題(共10題,每題2分,共計20分)B、10D、死循環(huán){namename;p=&st;main(){for(i=1:i<=50;i++)if()sum+=i;printf("%d",sum);}()19、著有下列定義,則()是對a數組元素地址的正確引用。inta[5],*p=a;,()20、以下敘述中正確的是,B、結構體變量的地址不能作為實參傳給函數C、結構體數組名不能作為實參傳給函數D、結構體中可以含有指向本結構體的指針成員得分評卷人22、if語句與語句一起可以構成循環(huán)結構。第5/12頁23、寫出下列程序的運行結果。{for(n=3;n<=10;n++){}}24、請補充函數proc(),該函數的功能是:把從主函數中輸入的由數字字符組成的字符串轉換成一個無符號長整數,并且逆序輸出。結果由函數返回。例如,輸入:1234567,結果輸出:7654321。橫線上填人所編寫的若干表達式或語句。試題程序:#include<stdio.h>unsignedlongproc(char*s{unsignedlongt=0:intk:inti=0;i=strlen(str);for(;i>=0;i--{}returnt;!.{printf("enterastringmadeupofgets(str);printf("thestring,is:%s\n",str);if(strlen(str)>8)printf("thestringielseprintf("theresult:%lu\n",proc(str));}{{{{}程序的輸出結果a的值為第6/12頁三、簡答題(共3題,每題分值不等,共計40分)三、簡答題(共3題,每題分值不等,共計40分)#include<stdio.h><string.h>voidmain(){i=sizeof(a);a[10]={'’a','b','c','d','\0','f','g','h',’\0'};}27、下列程序段的運行結果是{printf("%d\n",c);}intsub(intx,{returnz;28、在c語言中,實參和形參之間的數據傳遞是【1】向的值傳遞。printf("%d",a);結果是30、下列程序運行結果是#include<stdio.h>#include<string.h>{printf("%d,%s,%6.1f\n",a.a,a.b,a.c);{得分評卷人31、編寫程序:輸入三個整數x,y,z,請把這三個數由小到大輸出。(本題10分)32、編寫程序:利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來。(本題第7/12頁14分)33、編寫程序:用結構體數組,學生信息由學號、姓名,成績組成,數據如下:201513135157張三901)使用結構體數組,將學生的數據按成績從高到低排序顯示到屏幕上2)將學生中不及格學生的姓名顯示出來3)寫一個函數,獲取成績低于平均分的學生記錄并返回低于平均分的學生人數(本題16分)第8/12頁參考答案一、單項選擇題【解析】解答本題的關鍵在于讀懂if語句條件中的表達式。初始時a=1,b=3,所以++a=2>0,因此++a<0為假,因為是進行邏輯與(&&)運算,在&&的第一個運算對象為假的前提下不用判斷第二表達式的值為邏輯0,所以直接執(zhí)行else語句。【解析】左移運算符“<<”是雙目運算符。其功能把“<<”左邊的運算數的各二進位全部左移若干位,由“<<”右邊的數指定移動的位數,高位丟棄,低位補0。左移1位,相當于該數乘以2。【解析】根據結構變量的存儲特點,p+1意味著增加地址值為結構體數組a的一個為5,再執(zhí)行自加1運行,結果為6?!窘馕觥?+(或--)的運算結果是使運算對象增1(或減1);運算對象可以是整型變量、實型變量,也可以是字符型變量,但不能是常量或表達式。++(或--)的結合方向是“自右向左”。針形式即(*p).i和p->i。【解析】同類型的結構體變量可以進行整體賦值。結構體變量的地址可以作為實參傳遞給函數。結構體數組ing可以作為實參傳遞給函數。結構體成員可以包含指向本結構體的指針成員。本題答案為D選項。第9/12頁 【解析】sizeof運算符判斷數據類型所占內存字節(jié)大小,故i=10,該數組占10個字節(jié)的內存;strlen函數則判斷字符串實際長度,不包含“\O”,該函數遇到“\0”就會返回,故數組a的長度為4,即只計算了abcd這四個字符。28、單30、[’1001,changrong,1098main()main(){x,y,z,t;if(x>y){/*交換x,y的值*/t=x;x=y;y=t;}if(x>z){/*交換x,z的值*/t=z;z=x;x=t;}if(y>z){/*交換z,y的值*/t=y;y=z;z=t;}【解析】我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,然后再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。32、#include{voidpalin(intn);palin(i);printf("\n");}{第10/12頁charnext;next=getchar();printf("相反順序輸出結果\40:\40");putchar(next);next=getchar();palin(n-1);putchar(next):}33、#include<stdi{char*sno=newchar[20];char*name=newchar[20]:voidstuSort(student*stu){for(inti=0;i<NUM;i++){for(intj=0;j<NUM;j++){if(stu[j].score<stu[i].score){=stu[j].name;tmp.sno=stu[j].sno;tmp.score=stu[j].score;stu[j].name=stu[i].name;stu[j].sno=stu[i].sno;stu[j].score=stu[i].score;stu[i].name=;stu[i].score=tmp.score;}}{printf("%s%s%d\n",stu[i].sno,stu[i].name,stu[i].score)}voidstuFail(student*stu)第11/12頁{{{}{{{{{{({printf("輸入學號:");printf("輸入姓名:");stuSort(stu);stuFail(stu);stuAvg(stu);stu=NULL;return0;第1/10頁專業(yè)班專業(yè)班級:身份證號:姓名:準考證號:一、單項選擇題(共20題,每題2分,共計40分)2022年《C語言程序設計》專升本精選模擬(四)題號一二三總分得分●答案一律寫在答題紙上,寫在試卷上無效●試卷不得帶出考場●考試中途不能無端離場得分評卷人A、goto語句只能用于退出多層循環(huán)。B、switch語句中不能出現continue語句。C、只能用continue語句來中止本次循環(huán)。D、在循環(huán)中break語句不能獨立出現。()2、下面關于指針的說法中錯誤的是A、在指針定義的同時可以對其進行初始化B、指針根據其所指向變量的類型的不同,所占用內存大小也不同C、指針中存放的是內存單元的地址D、相同類型的指針之間可以相互賦值()3、在c程序中,判邏輯值時,用"非0"表示邏輯值"真",又用"0"表示邏輯值"假"。在求邏輯值時,邏輯真和邏輯假可分別表示為A、10B、01C、非0非0D、11for(i=5;i>;ir(jj則以下程序段中內循環(huán)的總的執(zhí)行次數定,for(i=5;i>A、20D、30()5、fgets(str,n,fp)函數從文件中讀入一個字符串,以下正確的敘述是。A、字符串讀入后不會自動加入’\0’B、fp是file類型的指針第2/10頁C、fgets函數將從文件中最多讀入n-1個字符D、fgets函數將從文件中最多讀入n個字符()6、若有代數式|x3+1gx|,則正確的c語言表達式是。B、abs(pow(x,3)+log10(x))C、abs(pow(x,3)0)+log10(x))()7、c語言中的基本數據類型包括A、整型、實型、字符型B、整型、字符型、數組C、整型、實型、邏輯型D、整型、實型、結構體()8、設有數據定義語句"inta[200];",下列數組元素引用中下標不越界的是。()9、下面程序段的運行結果是。chara[]=“abcdefgh”;char*p=a;p+=3;printf("%d\n",strlen(strcpy(p,"abcd")));B、12A、對于double類型數組,不可以直接用數組名對數組進行整體輸入或輸出B、數組名代表的是數組所占存儲區(qū)的首地址,其值不可改變C、當程序執(zhí)行中,數組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息D、可以通過賦初值的方式確定數組元素的個數()11、函數的值通過return語句返回,下面關于return語句的形式描述錯誤的是A、return表達式;C、一個return語句可以返回多個函數值D、一個return語句只能返回一個函數值A、標識符首字符的后面可以跟數字B、標識符不區(qū)分大小寫C、復合數據類型變量包括布爾型、字符型和浮點型第3/10頁D、數組屬于基本數據類型{for(p=a;p<a+10,p++)printf("%}。程序運行后的輸出結果是。{charname[10];{structstub={"lisiguo",2042};{}{structstua={"yangsan",2041},b={"wangyin",2043};printf("%d%d\n",a.num,b}執(zhí)行后的輸出結果是。A、20412044B、20412043()15、以下程序段的輸出結for(k=2;k<6;k++,k++){for(j=k;j<6;j++)s+=j;printf("%d\n",s);第4/10頁C、11D、10()16、結構化程序設計的3種結構是。A、順序結構、選擇結構、轉移結構B、分支結構、等價結構、循環(huán)結構C、多分支結構、賦值結構、等價結構D、順序結構、選擇結構、循環(huán)結構A、即使是同類型的結構體變量,也不能進行整體賦值B、結構體變量的地址不能作為實參傳給函數C、結構體數組名不能作為實參傳給函數D、結構體中可以含有指向本結構體的指針成員()18、已知字母a的ascii碼為十進制數的97,下面程序的輸出結果是main(){charcl,c2;cl='a'+'5'-'3';c2=’a'+'6'-'3';printf("%c,%d\n",cl,c2);}A、100,dB、c,100D、輸出格式不對,結果不確定()19、以下函數的功能是:通過鍵盤輸入數據,為數組中的所有元素賦值。#defineN10{while(i<N)scanf("%d",);在下劃線處應填入的是。main(){{cmplxx;y;第5/10頁填空題(共10題,每題2分,共計20分)cnum[2]={1,3,2,7};得分評卷人21、&&0|」2的值為22、以下程序運行結果是#include<stdio.h>voidmain(){if(y!=0)x=5;if(y==0)x=4;x=1;if(y<0)if(y>0)x=4;23、寫出下列程序的運行結果。main(){{printf("%d",n);24、下列給定程序中,函數proc()的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ascii碼升序排序后輸出。例如,輸入opdye,則應輸出deopy。請修改程序中的錯誤,使它程序:intproc(charstr[]){unsignedi,j;if(str[i]>str[j])第6/10頁三、三、簡答題(共3題,每題分值不等,共計40分)}c=str[j];str[j]=str[i++];system("cls")printf("\n\nbeforesorting:\n%s",str)proc(str);printf("\naftersortingdecendingly:\n%s",str);}25、以下程序運行后的輸出結果是main(){printf("%d\n",0<x&&x<20);28、ferror函數用來檢測文件讀寫時是否發(fā)生錯誤,若未發(fā)生讀寫錯誤,則返回值是29、以下程序的輸出結果是。main(){30、下列程序段的運行結果是{longnum;}p={1021103,"jiangmain()ping",'m',85.5};{得分評卷人第7/10頁31、編寫程序:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。(本題10分)32、編寫程序:打印出楊輝三角形(要求打印出10行)。結構如下所示:133、編寫程序:編寫input()和output()函數輸入,輸出5個學生的數據記錄。(本題16分)第8/10頁參考答案一、單項選擇題【解析】指針是一種用來存放其他變量地址的數據類型,它的聲明形式為:〈類型〉+〈變量名〉,可以在聲明的時候對其進行初始化。由于其存放的是內存單元的地址,所以大小一般都是4個字節(jié)。【解析】在C程序中,判斷邏輯值時,用非0表示真,用0表示假。邏輯表達式計算時,邏輯表達式值為真是用1表示的,若邏輯表達式的值為假,則用0表示。【解析】p被定義為指針型變量,指向字符數組a的首地址。執(zhí)行p+=3;指針后移3位,指向d。strcpy(p,"ABCD")將字的個數(不計’\0'),返回值為字符串"ABCD"中字符的個數4?!窘馕觥縭eturn語句中的表達式的值就是所求的函數值,此表達式值的類型必須與函數首部所說明的類型一致。如果類型不一致,則以函數值的類型為準,由系統(tǒng)自動進行轉換。一個return語句只能返回一個值?!窘馕觥窟x項B錯誤,c語言標識符是區(qū)分大小寫的;選項C錯誤,復合數據類型應該包括數組、類和接口;選項D錯誤,數組應該屬于復合數據類型;選項A正確,標識符首字符的后面可以跟數字、字母、下劃線和美元符號?!窘馕觥緾語言規(guī)定數組變量名代表數組的首地址,即第0號元素的地址。本題將a數組中的值全部輸出,即為【解析】同類型的結構體變量可以進行整體賦值。結構體變量的地址可以作為實參傳遞給函數。結構體數組ing可以作為實參傳遞給函數。結構體成員可以包含指向本結構體的指針成員。本題答案為D選項。第9/10頁22、5|5,1【解析】上程序中第三個if語句有嵌套,前兩個if語句沒有嵌套。前兩個if語句根據y=1便可得知輸出結果均為5;最后一個if語句,根據條件y<0便知不成立,后續(xù)語句無法執(zhí)行,只好輸出前一賦值語句x=1的值。23、34525、[’10’]26、030、m{chari,j,k;if(i!=j){for(k='x';k<='z';k++){if(i!=k&&j!=k){if(i!='x'&&k!='x'&&k!='z'){printf("順序為:a--%c\tb--%c\tc--%c\n",i,}32、#include<stdio.h>intmain(){for(i=0;i<10;i++){}a[i][j]=a[i-1][j-1]+a[i-1]第10/10頁}}#include<stdlib.h>typedefstruct{charname[20];voidinput(Stu*stu);voidoutput(Stu*stu);input(stu);printf("5個學生的信息如下:\n姓名性別年齡\n");output(stu);system("pause");return0;voidinput(Stu*stu){voidoutput(Stu*stu){for(i=0;i<5;i++)}一、單項選擇題(共20題,每題2分,共計40分)總分:【150分】題號一二三總分得分●答案一律寫在答題紙上,寫在試卷上無效●試卷不得帶出考場●考試中途不能無端離場得分評卷人A、一個用于指向整型數據的指針變量B、一個用于指向一維數組的指針C、一個用于指向函數的指針變量D、一個返回值為指針型的函數名C、1A、算術表達式B、非法表達式C、字符串表達式D、關系表達式()4、{}while(x==0);A、循環(huán)體將執(zhí)行一次B、循環(huán)體將執(zhí)行兩次C、循環(huán)體將執(zhí)行無限次D、系統(tǒng)將提示有語法錯誤第1/10頁第2/10頁A、對文件操作必須先關閉文件C、對文件操作順序無要求D、對文件操作前必須先測文件是否存在,然后再打開文件A、while循環(huán)的循環(huán)體至少執(zhí)行1次B、while循環(huán)的循環(huán)控制條件比do-while循環(huán)的循環(huán)控制條件復雜C、do-while循環(huán)體不能是復合語句D、do-whil循環(huán)的循環(huán)體至少執(zhí)行1次#include<stdio.h>main(){運行上面的程序,輸入字符串howareyou,則程序的執(zhí)行結果是。()10、已知3個字符為;a、x和5,按它們的ascii碼值升序排序,結果是。A、模板形參表必須在關鍵字template之后B、模板形參表必須用括弧()括起來第3/10頁C、可以用class修飾模板形參D、可以用typename修飾模板形參()12、以下選項中不正確的字符常量是’\\’對于以下變量定義,正確的賦值是。int*p[3],a[3];有以下程序:#include{<stdio.h>main(){structsp=data[1];printf("%d\n",++(p.a));程序運行后的輸出結果是。A、10B、11D、21()15、下列程序的輸出結果是#include<stdio.h>intf(inta,intb);main(){j=i;k=++i;printf("%d",p);intf(inta,intb){if(a>b)c=1;第4/10頁()16、以下關于結構化程序設計的敘述中正確的是A、一個結構化程序必須同時由順序、分支、循環(huán)三種結構組成B、結構化程序使用goto語句會很便捷C、在C語言中,程序的模塊化是利用函數實現的D、由三種基本結構構成的程序只能解決小規(guī)模的問題{}若要使p指向data中的a域,正確的賦值語句是。A、p=(structsk*)&data.a;{}{c++;}執(zhí)行此程序后屏幕上顯示的結果是。A、81010B、7910C、8911D、8910A、即使是同類型的結構體變量,也不能進行整體賦值第5/10頁二、填空題(共10題,每題2分,共計20分)B、結構體變量的地址不能作為實參傳給函數二、填空題(共10題,每題2分,共計20分)C、結構體數組名不能作為實參傳給函數D、結構體中可以含有指向本結構體的指針成員()20、以下對結構體變量stu1中成員age的非法引用是。{p=&stul;得分評卷人21、已知t=5,則表達式"t-=t+=3"的值是22、變量y滿足以下兩條件中的任意一個:①能被4整除,但不能被100整除;23、僅由順序、選擇(分支)和重復(循環(huán))結構構成的程序是程序。24、mystrlen函數的功能是計算str所指字符串的長度,并作為函數值返回。請?zhí)羁?。intmystrlen(char*str){return();}25、下列程序段的運行結果是。chars1[20]="abcdef",s2[5]="abcprintf("%c",s1[4]);26、在c語言中,二維數組在內存中的存放順序是。27、字符讀寫函數是用于從磁盤文件中讀出一個字符。28、inty=1,x,*p,a[]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y+=*(p+x);程序的輸出結果y的值是。29、以下程序的輸出結果是main(){第6/10頁三、簡答題(共3題,每題分值不等,共計40分)三、簡答題(共3題,每題分值不等,共計40分)30、定義枚舉類型時采用的關鍵字是得分評卷人31、編寫程序:利用遞歸方法求5!。(本題10分)32、編寫程序:判斷一個素數能被幾個9整,比如:素數13能整除6個9組成的數999999(本題14分)第7/10頁【解析】在C中對文件操作必須先打開文件,待文件操作完畢后要關閉文件。對文件以讀的方式進行打開操作時,同時會執(zhí)行文件的檢查文件是否存在,不存在將會返回空的文件指針,如果對文件以寫的方式打開時,文件不存在,將會自動創(chuàng)建文件,因此在C中打開文件前不必對其檢查文件是否存在,故答案為B。6、A【解析】當指針指向數組的首地址時,數組內各元素地址為p+n(數組下標從0開始到n-1結束),n為數組下標,取數組元素值為*(p+n)?!窘馕觥縟o-whilewhile-w-和的主要區(qū)別在于do-不進行條件判斷,先進入循環(huán)體執(zhí)行一遍再判斷是否可以繼續(xù)循環(huán),而while則是先進行條件判斷再決定是否進入循環(huán)體執(zhí)行。dowhile循環(huán)的循環(huán)體至少執(zhí)行1次。本題答案為D選9、A【解析】當從鍵盤輸入bowareyou時,由于scanf輸入函數的特點是遇到空格時結束讀入字符,因此,該程序只將how這3個字符送到了字符數組str中,并在其后自動加上結束符“\0”?!窘馕觥恐饕疾楹瘮的0宓亩x,聲明一個函數模板的格式為template<<模板形參表聲明>><函數聲明>,其中<模板形參>具有typename<參數名>、class<參數名>、<類型修飾><參數名>三種形式,形參用”<>”括【解析】聲明data是結構S數組。初始化data[0].a=10;,data[0].b=100;,data[1].a=20:,data[1].b=200。主函數中p=data[1];,即p.a=data[1].a;,p.b=data[1].b;。執(zhí)行語句printf("%d\n",++(p.a));打印輸出時p.a先增1再打印,即p.a=data[1].a=20,先增1等于21。【解析】C語言是結構化程序設計語言,順序結構、選擇結構、循環(huán)結構是結構化程序設計的種基本結構,研究證明任何程序都可以由這三種基本結構組成。但是程序可以包含一種或者幾種結構,不是必須包含全部三種結構。自從提倡第8/10頁結構化設計以來,goto就成了有爭議的語句。首先,由于goto語句可以靈活跳轉,如果不加限制,它的確會破壞結構化設計風格。其次,goto語句經常帶來錯誤或隱患。它可能跳過了某些對象的構造、變量的初始化、重要的計算等語句。Goto語句的使用會使程序容易發(fā)生錯誤并且也不易閱讀,所以應避免使用。由三種基本結構構成的程序幾乎能解決大部分問題?!窘馕觥客愋偷慕Y構體變量可以進行整體賦值。結構體變量的地址可以作為實參傳遞給函數。結構體數組ing可以作為實參傳遞給函數。結構體成員可以包含指向本結構體的指針成員。本題答案為D選項。二、填空題22、[’y%4==0&&y%100!=0||y%40026、按行主順序存放<stdio.h>intmain(){for(i=0;i<6;i++){printf("%d!=%d\n",i,fact(i));}}intfact(intj){if(j==0){sum=1;}32、#include<stdio.h>#include<stdlib.h>{printf("素數%d能整除%d個9組成的數%ld\n",p,i,sum);33、#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedefstructLNode{voidprint(LinkListh);{printf("剛剛建立的各個鏈表元素的值為:\n");system("pause");LinkListCreateList(intn){LinkListL,p,q;L=(LNode*)malloc(sizeof(LNode)if(!L)return0;q=L;{p=(LinkList)malloc(sizeof(LNode));printf("請輸入第%d個元素的值:",i);第9/10頁第10/10頁scanf("%d",&(p->data)):1}voidprint(LinkListh){LinkListp=h->next;p=p->next;第1/11頁專業(yè)班級:專業(yè)班級:身份證號:姓名:準考證號:密------一、單項選擇題(共20題,每題2分,共計40分)2022年《C語言程序設計》專升本精選模擬(六)題號一二三總分得分●答案一律寫在答題紙上,寫在試卷上無效●試卷不得帶出考場●考試中途不能無端離場得分評卷人main(){b=&a;…程序在執(zhí)行了c=&b;b=&a;A、循環(huán)控制表達式的值為0B、循環(huán)控制表達式的值為1C、循環(huán)控制表達式不合法D、以上說法都不對()3、選擇出合法的if語句(設intx,a,b,c;)A、使用while循環(huán)時,循環(huán)變量初始化的操作應在循環(huán)語句之前完成第2/11頁B、while循環(huán)是先判斷表達式,后執(zhí)行循環(huán)體語句C、do-while和for循環(huán)均是先執(zhí)行循環(huán)體語句,后判斷表達式D、for,while和for-while循環(huán)中的循環(huán)體均可以由空語句構成()5、若有說明:long*p,a;則不能通過scanf語句正確給輸入項讀入數據的程序段是。()6、若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中O≤i≤9,則對a數組元素不正確的引用是。D、不確定)7、已知:chars[100];intx=y=z=l;t=++x||++y&&++z;A、不定值#include<string.h>main(){charp[20]={’a','b','c','d'},q[]="abc",r[]="abcde";strcat(p,r);}程序運行后的輸出結果是,C、11()10、下面程序的功能是將從鍵盤輸入的一對數,由小到大排序輸出。當輸入一對相等數時結束循第3/11頁#includemain(){<stdio.h>a,b,t;while(){t>b)b=t;}()11、要調用數學函數時,在#include命令行中應包含,A、復合語句在語法上包含多條語句,其中不能定義局部變量B、花括號對只能用來表示函數的開頭和結尾,不能用于其他目的C、空語句就是指程序中的空行D、當用scanf從鍵盤輸入數據時,每行數據在沒按下回車鍵(Enter鍵)前,可以任意修改()13、要求函數的功能是交換x和y中的值,且通過正確調用返回交換結果.能正確執(zhí)行此功。能的函數是。{}{}{第4/11頁{}{charnum[10];main(){structstus[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;p=s+1;for(i=0;i<3;i++)sum=sum+p->score[i];printf("%.3f\n",sum);}程序運行后的輸出結果是A、250.000B、250C、270.000main(){printf("%d,",b=a+b);printf("%d",a=2*b);}程序運行后的輸出結果是,()16、若變量已正確定義:for(x=0,y=0;(y!=99&&x<4);x++)則以上for循環(huán)()C、執(zhí)行無限次D、執(zhí)行次數不定()17、c語言中,定義結第5/11頁二、填空題二、填空題(共10題,每題2分,共計20分)main(){x=(x>='a’&&x<='z’)?(x+32):x;printf("%c\n",x);}程序的輸出結果是。#include<stdio.h>struct{x,y;}data[2]={{1,10},{2,20}};main(){printf("%d,",p->y);printf("%d\n",(++p)->x);}B、20,1C、10,2D、20,2得分評卷人21、#include#include<string.h>voidmain(){chara[10]={’a','b','c','d',’\0','f','g','h','\o'};i=sizeof(a);j=strlen(a):}main(){{break;break;break}printf("%d",a);23、結構化程序設計的3種基本結構是:()結構、選擇結構、循環(huán)結構,這三種基本結構構成了復雜的c語言程序。24、mystrlen函數的功能是計算str所指字符串的長度,并作為函數值返回。請?zhí)羁?。intmystrlen(char*str){return()}{1{printf("\n");則x數組中行下標的下限為【1】,列下標的上限為【2】。#include命令中應包含()頭文件。28、以下程序的運行結果是#include<string.typedefstructstudent第6/11頁第7/11頁三、三、簡答題(共3題,每題分值不等,共計40分)longsno;}main(){stua={"zhangsan",2001,95},b={"shangxian",2002,90},c=d=a;if(strcmp(,)>0)d=b;if(strcmp(,)>0)d=c;printf("%ld%s\n",d.sno,p->name);}#include<string.h>main(){chara[]={’a',’b','c','d','e','f’,’\o'};intj;j=strlen(a)程序運行后的輸出結果是。{doubled;現在定義t數組,要求t數組的每個元素為該結構體類型,請?zhí)羁眨籹trut[20];得分評卷人31、編寫程序:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大?(本題10分)32、編寫程序:刪除一個字符串中的指定字母,如:字符串"aca",刪除其中的a字母。(本題14分)33、編寫程序:創(chuàng)建一個長度為n的鏈表,然后反向輸出該鏈表。(本題16分)第8/11頁參考答案【解析】t=1是將t賦值為1,所以循環(huán)控制表達式的值為1。判斷t是否等于1時,應用t==1,注意“=”與“==”的用法?!窘馕觥緼雖然是賦值語句,但是在邏輯運算中自動將賦值語句的結果當作邏輯值,方法是,如果賦值語句的結果是非零值則當作邏輯真,否則當作邏輯

溫馨提示

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

最新文檔

評論

0/150

提交評論