![長春大學C語言題庫(八卷)及答案_第1頁](http://file4.renrendoc.com/view/30de87949011f812d848a77cee2afe6c/30de87949011f812d848a77cee2afe6c1.gif)
![長春大學C語言題庫(八卷)及答案_第2頁](http://file4.renrendoc.com/view/30de87949011f812d848a77cee2afe6c/30de87949011f812d848a77cee2afe6c2.gif)
![長春大學C語言題庫(八卷)及答案_第3頁](http://file4.renrendoc.com/view/30de87949011f812d848a77cee2afe6c/30de87949011f812d848a77cee2afe6c3.gif)
![長春大學C語言題庫(八卷)及答案_第4頁](http://file4.renrendoc.com/view/30de87949011f812d848a77cee2afe6c/30de87949011f812d848a77cee2afe6c4.gif)
![長春大學C語言題庫(八卷)及答案_第5頁](http://file4.renrendoc.com/view/30de87949011f812d848a77cee2afe6c/30de87949011f812d848a77cee2afe6c5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C語言題庫(一)(總分100分,考試時長90分鐘)一、單項選擇題(每題2分,共40分)1、用高級程序設計語言編寫的程序,OA、計算機能直接執(zhí)行B、具有良好的可讀性和可移植性C、執(zhí)行效率高,但可讀性差D、依賴于具體機器,可移植性差2、假設有定義語句:inta=10;doubleb=3.14;,那么表達式'a'+a+b值得類型是OA、charB>intdoublefloat3、下面程序的輸出是。(〃口〃表示一個空格)inta=3366;printf(1%-08d|a);|-0003366||00003366|C、|3366口口口口|D、輸出格式非法4、運行以下程序后,如果從鍵盤上輸入china#〈回車〉,那么輸出結果為ftinclude<stdio.h>main(){intvl=0,v2=0;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:vl++;case'o':v2++;)printf(〃%d,%d\rT,vl,v2);)A、2,0B、5,0【解析】此題主要考查的是函數(shù)參數(shù)的傳遞。在C語言中,函數(shù)參數(shù)的傳遞是“傳值”的,即復制一份實參給形參,形參和實參是完全沒有關系的兩個變量。所以在函數(shù)內(nèi)部改變形參變量,并不會影響到函數(shù)外部的實參。要實現(xiàn)“傳址”調(diào)用,必須通過指針。因為將實參指針內(nèi)容復制給了形參指針后,兩個指針變量雖然沒有任何關系,但它們指向的卻是同一個內(nèi)存地址,當改變形參指針所指向的那個內(nèi)存地址的內(nèi)容時,實參指針所指向的內(nèi)容也就同時被改變了,從而實現(xiàn)了“傳址”調(diào)用。但是,并不是說只要函數(shù)參數(shù)是指針,那肯定就是“傳址”調(diào)用。應選擇C)。13、B14、D15、D16、B17、D18、C19、A20、C【解析】結構件變量所占內(nèi)存長度是各成員占內(nèi)存長度之和,而共用體變量所占的內(nèi)存長度等于最長的成員的長度。此題結構體變量a中成員c為整型占2個字節(jié),共用體變量u最大長度為4個字節(jié),應選C。二、判斷題1、錯誤2、正確3、錯誤4、正確5、錯誤6、正確7、錯誤8、錯誤9、正確10、錯誤三、編程題1、#include〃stdio.h"intfun(inta){inti;if(a==2)return1;i=2;while((a%i)!=0&&i<=sqrt((float)a))i++;if(a%i==0)printf(z/%disnotaprime!”,a);return0;)printf(/z%disaprime!z/,a);return1;}main(){intx;printf(/z\npleaseenteranumber:");scanf(〃%d〃,&x);printf(〃%d\n〃,fun(x));)2>#includevoidmain(){inti;floatsum=100.0,h=50;for(i=2;i<=10;i++){sum=sum+2*h;h=h/2;)printf(〃%f,%f\n/z,sum,h);)3、ttinclude<stdio.h>structstuff(intstuffID;floatbonus;}a[5];intmain()(inti;floatmin;for(i=0;i<5;i++)scanf(z/%d%f〃,&a[i].stuffID,&a[i].bonus);min=a[0].bonus;for(i=1;i<5;i++)(if(min>=a[i].bonus)min=a[i].bonus;)for(i=0;i<5;i++)printf(/z%d%.2f\n〃,a[i].stuffID,a[i].bonus);printf(/zminBonus=%.2f〃,min);C語言題庫(二)(總分100分,考試時長90分鐘)一、單項選擇題(每題2分,共40分)1、以下可作為C語言賦值的語句的是oA、x一3,y=5a二b二6i--;D、a,c2>inti;floatf;正確的語句是OA、(intf)%iB、int(f)%iC、int(f%i)D、(int)f%i3、c語言提供的預處理功能包括條件,其基本形式為:#XXX標識符程序段1ftelse程序段2ftendif這里的XXX可以是。define或includeifdef或includeC、indef或ifndef或defineD>ifdef或ifndef或if4、以下程序的輸出結果是o#include<stdio.h>main()(inta=l,b=3;if((++a<0)&&!(b--<=0))printf(〃%d,%d\n〃,a,b);elseprintf(〃%d,%d\n〃,b,a);}A、2,2B、1,3C、3,2D、3,15、程序的基本控制結構是oA、順序結構,多分支結構和單分支結構B、順序結構,支結構和循環(huán)結構C、順序結構,選擇結構和循環(huán)結構。D、單行結構和多行結構。6、如果用數(shù)組名作為實參,那么傳遞給形參的是oA、數(shù)組的首地址B、第一個元素的值C、數(shù)組元素的個數(shù)D、數(shù)組中全部元素的值7、正確表示條件100WxW300的c表達式是oA、100<=x<=300B、x>=100,x<=300C、x>=100&x<=300D、x>=100&&x<=3008、下述對c語言字符數(shù)組的描述中錯誤的選項是oA、字符數(shù)組可以存放字符串.B、字符數(shù)組中的字符串可以整體輸入、輸出.C、可以在賦值語句中通過賦值運算符〃一對字符數(shù)組整體賦值.D、不可以用關系運算符對字符數(shù)組中的字符串進行比擬.9、當說明一個共用體變量時系統(tǒng)分配給它的內(nèi)存是oA、各成員所需要內(nèi)存量的總和B、共用體中第一個成員所需內(nèi)存量C、成員中占內(nèi)存量最大者所需的容量D、共用體中最后一個成員所需內(nèi)存量10、以下正確的字符串常量是o'abc'OlympicD>**11、定義如下一維數(shù)組:inta[5],*p;那么以下描述錯誤的選項是A、表達式p=p+l是合法的B、表達式a=a+l是合法的C、表達式p-a是合法的D、表達式a+2是合法的12、c語言中不可以嵌套的是oA、函數(shù)調(diào)用B、函數(shù)定義C、循環(huán)語句D、選擇語句13、假設有條件表達式(exp)a++:b—,那么以下表達式中能完全等價于表達式(exp)的是O(exp==O)(exp!=O)(exp==l)(exp!=l)14、si和s2已正確定義并分別指向兩個字符串。假設要求:當si所指串大于s2所指串時,執(zhí)行語句s;那么以下選項中正確的選項是。A、if(sl>s2)S;B、if(strcmp(si,s2))S;C、if(strcmp(s2,si)>0)S;D>if(stremp(si,s2)>0)S;15、下面的程序main(){intx=3,y=0,z=0;if(x=y+z)printf(〃****〃);elseprintf(〃####〃);}A、有語法錯誤不能通過編譯B、輸出****。C、可以通過編譯,但是不能通過連接,因而不能運行。D、輸出####。16、以下選項中與if(a=l)a++;elsea=b;語句功能不同的語句是A、switch(a)ease0:a=b;break;default:a++;B>switch(a==l)case0:a++:default:a=b;switch(a)default:a=b;break;case1:a++;D、a=(a==l)(a++):b17、有以下結構體說明和變量的定義,且指針p指向變量a,指針q指向變量bo那么不能把結點b連接到結點a之后的語句是ostructnodechardata;structnode*next;)a,b,*p=&a,*q=&b;TOC\o"1-5"\h\z347535741234123518、有以下程序inta=2;intf(int*a){return(*a)++;}main()(ints=0;(inta=5;s+=f(&a);)s+=f(&a);printf(〃%d\n〃,s);)執(zhí)行后輸出結果是。A、10B、9C、7D、819、假設有說明inta[3][4];那么a數(shù)組元素的非法引用是A、123B、2.5C、-12156320、以下選項中,能定義m為合法的結構體變量的是otypedefstructabc{doublea;charb;}m;struct{doublea;charb;}m;structABC{doublea;charb;}ABCm;D>typedefABC(doublea;charb;}ABCm;二、判斷題(每題2分,共20分)()1、全局變量本身就是靜態(tài)存儲方式。()2、字符數(shù)組定義后,不能用賦值語句將一字符串常量或字符數(shù)組直接賦給一個字符數(shù)組。()3、在c語言中,可以將主調(diào)函數(shù)放在被調(diào)函數(shù)的后面,省略函數(shù)的聲明。()4、while語句的一般形式如下,其中的循環(huán)體語句只能是一條語句。()5、c語言中字符串的結束符是'\(r。()()6、c程序可以省略main()函數(shù)。()7、當字符數(shù)組中的初值個數(shù)小于數(shù)組長度時,沒有賦值的元素會默認賦值為空字符。0()8、在標準c語言中,所有函數(shù)在調(diào)用之前都要進行聲明。()9、在定義函數(shù)時,假設函數(shù)類型為〃void〃,那么表示該函數(shù)沒有返回值;假設函數(shù)參數(shù)為〃void〃,那么表示該函數(shù)沒有參數(shù)。()()10、全局變量的作用域是整個源程序文件。三、編程題(每題分,共40分)1、編寫程序:給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。(此題10分)2、編寫程序:輸出Fibonacci序列的前10個數(shù),前兩項鍵盤輸入(此題14分)3、編寫程序:有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)(包括學生號,姓名,三門課成績),計算出平均成績,況原有的數(shù)據(jù)和計算出的平均分數(shù)存放在磁盤文件〃stud〃中。功能如下:請輸入5個同學的信息:學生號,姓名,3門成績:1a6070802b6080903c5939894e5688985d438878翻開stud文件,內(nèi)容如下1a607080702b608090763c593989624e568898805d43887869(此題16分)參考答案一、單項選擇題1、C2、D3、D4、C【解析】解答此題的關鍵在于讀懂if語句條件中的表達式。初始時a=l,b=3,所以++a=2>0,因此++a<0為假,因為是進行邏輯與(&&)運算,在&&的第一個運算對象為假的前提下不用判斷第二個運算對象的真假,就可以直接得出整個表達式的值為邏輯0,所以直接執(zhí)行else語句。5、C6、A【解析】將數(shù)組傳遞給函數(shù)時,實際上是傳遞數(shù)組第一個元素的地址給函數(shù),即數(shù)組的首地址。7、D【解析】請仔細閱讀交規(guī)難度:簡單8、C9、C10、D11、B12、B13、B【解析】條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式17表達式2:表達式3其求解順序是:先求解表達式1,假設為非0(真)那么求解表達式2,此時表達式2的值就作為整個條件表達式的值。假設表達式1的值為0(假),那么求解表達式3,表達式3的值就是整個條件表達式的值。并且注意++、一的用法。14、D15、D16、B【解析】ifelse語句的含義是,如果變量a的值等于1,變量a的值加1,否那么,那么把變量b的值賦給變量a。在此題的4個選項中,與其含義不同的是選項B),因為沒有break語句,當a=l的時候,會順序執(zhí)行兩條語句,最終結果是將b的值賦給a。17、BC、5,5D、2,55、有以下程序:#include<stdio.h>main(){intx=8;for(;x>O;x--)(if(x%3){printf(〃%d,〃,x一);continue;}printf(〃%d,〃,一x);)}程序的運行結果是oA、7,4,2B、8,7,5,2C、9,7,6,4D>8,5,4,26、有如下函數(shù)定義;voidfunc(inta,int&b)(a++;b++;)假設執(zhí)行代碼段:intx=0,y=l;func(x,y);那么變量X和y的值分別是oA、0和1B、1和1C、0和2D、1和27、設有intx=ll;那么表達式(x++*l/3)的值是A、3B、4【解析】在被調(diào)用過程中,有這樣的語句“StaticSum",因為變量Sum是局部變量,局部變量除了可以用Dim語句聲明外,還可用Static語句將變量聲明為靜態(tài)變量,它在程序運行過程中可保存變量的值,這就是說每次調(diào)用過程時,用Static說明的變量保持原來的值。具體過程分析如下:調(diào)用P(l),所以在被調(diào)過程中N=l,執(zhí)行ForNext循環(huán),P(l)=Sum=l;調(diào)用P(2),所以在被調(diào)過程中N=2,執(zhí)行ForNext循環(huán),P(2)=Sum=4;調(diào)用P(3),所以在被調(diào)過程中N=3,執(zhí)行ForNext循環(huán),P(3)=Sum=10;調(diào)用P(4),所以在被調(diào)過程中N=4,執(zhí)行ForNext循環(huán),P(4)=Sum=20;不難看出,最后輸出的結果S值應為1+4+10+20=35,所以選項C)正確。18、C19、B【解析】A)選項必須輸入6個字母或數(shù)字(數(shù)字也能輸入,不符合),C)選項可以輸入6個任意字符,也不符合題議,D)選項可以選擇輸入6個數(shù)據(jù)或空格,不符合題意。20、B二、判斷題1、正確2、正確3、正確4、錯誤5、正確6、錯誤7、正確8、錯誤9、正確10、錯誤三、編程題1>^include<stdio.h>intmain(){longa,b,c,d,e,x;printf("請輸入5位數(shù)字:〃);scanf&x);a=x/10000;/*分解出萬位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/
e=x%10;e=x%10;if(a!=0){e=x%10;if(a!=0){/*分解出個位*/printf(〃為5位數(shù),逆序為:%ld%ld%ld%ld%ld\n〃,e,d,c,b,a);}elseif(b!=0)printf(〃為}elseif(c!=0)printf(〃為e=x%10;if(a!=0){/*分解出個位*/printf(〃為5位數(shù),逆序為:%ld%ld%ld%ld%ld\n〃,e,d,c,b,a);}elseif(b!=0)printf(〃為}elseif(c!=0)printf(〃為}elseif(d!=0)printf(〃為}elseif(e!=0)printf(〃為位數(shù),逆序為:位數(shù),逆序為:位數(shù),逆序為:位數(shù),逆序為:%ld%ld%ld%ld\n〃,e,d,c,b);%ld%ld%ld\n/z,e,d,c);%ld\n/z,e);main()(inta[10],i,j;for(i=0;i<2;i++)scanf(〃%d〃,&a[i]);for(i=2;i<=9;i++)a[i]=a[i-l]+a[i-2];for(i=0;i<=9;i++)printf(〃%d\t〃,a[i]);getchO;3、#include<stdio.h>#include<stdlib.h>typedefstruct{intID;intmath;intEnglish;intC;intavargrade;charname[20];}Stu;intmain()(FILE*fp;Stustu[5];inti,avargrade=0;printf(〃請輸入5個同學的信息:學生號,姓名,3門成績:\n〃);for(i=0;i<5;i++)scanf(z,%d%s%d%d%dz,,&(stu[i].ID),stu[i].name,&(stu[i].math),&(stu[i].English),&(stu[i],C));stu[i].avargrade=(stu[i].math+stu[i].English+stu[i].0/3;)if((fp=fopen(〃stud〃,〃w〃))==NULL)(printf(/zerror:cannotopenfile!\nz/);exit(0);)for(i=0;i<5;i++)fprintf(fp,/z%d%s%d%d%d%d\n/z,stu[i],ID,stu[i].name,stu[i].math,stu[i].English,stu[i].C,stu[i].avargrade);fclose(fp);//system("pause");return0;C語言題庫(三)(總分100分,考試時長90分鐘)一、單項選擇題(每題2分,共40分)1、設c語言中,int類型數(shù)據(jù)占2個字節(jié),那么long類型數(shù)據(jù)占一A、1個字節(jié)B、2個字節(jié)C、4個字節(jié)D、8個字節(jié)2、以下初始化語句中,正確且與語句charc[]二〃string”;等價的是A、charc[]={飛,/t,,,r,,,i,,,n,,,g,};B、charc["string’;C、charc[7]=[s','t','r',''n','g','\0'};D、charc[7]={,string,};3、設有定義:intk=l,m=2;floatf=7;,那么以下選項中錯誤的表達式是OA、k=k>=kB、-k++C、k%int(f)D、k>=f>=m4、以下程序的輸出結果是。#include<stdio.h>main(){inta=0,b=l,c=2;if(++a>0||++b>0)++c;printf(/z%d,%d,%d〃,a,b,c);)A、0,1,2B、1,2,3C、1,1,3D、1,2,25、有以下程序ttinclude<stdio.h>main()inti,j,m=l;for(i=l;i<3;i++){for(j=3;j>0;j—){if(i*j>3)break;川*二i*j;))printf("m=%d\n”,m)}程序運行后的輸出結果是OA、m=6B、m=2C、m=4D、m二56、設有數(shù)據(jù)定義語句〃inta[200];〃,以下數(shù)組元素引用中下標不越界的是OA、a[~l]a[201]a[0]a[200]7、以下程序的運行結果是omain(){inta=5,p;if(p=a!=0)printf(〃n%〃d,p);elseprintf(〃%d\n〃,p+2);)A、5B、1C、0D、編譯有錯,無結果。8、設inta[10],*p=a;數(shù)組元素a[4]的正確引用是。A、*(p+4)B、p+4*p+4D、a+49、計算機的中央處理器每執(zhí)行一條(),就完成一步基本運算和判斷。A、命令B、指令C、程序D、語句10、以下選項中c語言中不合法的字符串常量的是oA、〃\121〃B、’yC、〃\n\rT〃ABCD\x6d\11>有語句charstrl[10],str2[10]={,,china,/};那么能將字符串china賦給數(shù)組strl的正確語句是。strl={“china"};B、strcpy(strl,str2);C、strl=str2;D、strcpy(str2,strl);12、假設調(diào)用一個函數(shù),且此函數(shù)中沒有return語句,那么正確的說法是:該函數(shù)OA、沒有返回值B、返回假設干個系統(tǒng)默認值C、能返回一個用戶所希望的值D、返回一個不確定的值13、表達式'5'」1'的值是oA、整數(shù)4B、字符4C、表達式不合法D、字符614、假設有說明:int@[][3]={{1,2,3},{4,5},{6,7}};那么數(shù)組2的第一維的大小為:()A、2B、3C、4D、無確定值15、以下程序的執(zhí)行結果是.main()intnum=0;while(num<=2)num++;printf(〃%d,〃,num);)}A、0,1,2B、1,2,C、1,2,3,D、1,2,3,4,16、下面程序的輸出結果是.#include<stdio.h>voidmain(){intx=3;do(printf(〃%d〃,x-=2);)while(!(--x));}A、1B、1-2C、30D、是死循環(huán)17、以下表達中正確的選項是oA、即使是同類型的結構體變量,也不能進行整體賦值B、結構體變量的地址不能作為實參傳給函數(shù)C、結構體數(shù)組名不能作為實參傳給函數(shù)D、結構體中可以含有指向本結構體的指針成員18、下面程序輸出的結果是omain(){intx=100,a=10,b=20,okl=5,ok2=0;if(a<b)if(b!=15)if(!okl)x=-i;elseif(ok2)x=10;x=l;A、-1B、0C、1D、不確定的值19、以下定義數(shù)組的語句中不正確的選項是A、staticinta[2][3]={1,2,3,4,5,6};B、staticinta[2][3]={{1},{4,5}};C、staticinta[][3]={{1},{4}};D>staticinta[][]={{1,2,3},{4,5,6}};20、下面哪個不是關鍵字?A、intstructdefinecontinue二、判斷題(每題2分,共20分)()1、符號〃a〃和,a,的區(qū)別是〃a〃是字符串常量,占2個字節(jié);而'a,是字符常量,占1個字節(jié)。()()2、for語句的一般形式如下,其中的表達式1只執(zhí)行一次。()3、在標準c語言中,共用體變量中的各成員是共同占用一塊存儲空間()4、假設變量已正確定義,以下while循環(huán)結束時,i的值為11。i=1;while(i<=10){printf(〃%d\n〃,i);)()5、用puts和gets函數(shù)可以輸入或輸出多個字符串。()6、c語言中函數(shù)返回值的類型跟形參的數(shù)據(jù)類型沒有直接的聯(lián)系。()7、對字符數(shù)組進行初始化時,如果初值個數(shù)小于數(shù)組長度,那么只將這些字符賦給數(shù)組中的前面那些元素,其余元素自動定為空字符(''0')o()8、c語言程序中可以有多個函數(shù),但只能有一個主函數(shù)。()9、用strcat(字符串1,字符串2)連接兩個字符串函數(shù)時,字符串1的存儲空間必須足夠大。()10、在c程序中,假設鏈接過程沒有發(fā)現(xiàn)任何錯誤那么表示鏈接成功,會生成一個〃.obj〃文件。三、編程題(每題分,共40分)1、銀行定期存款利率為r=2.25%,輸入存款本金x、存款年數(shù)n,輸出本利之和y=x(l+r)(1+r)...(1+r),共n個(1+r)0(此題10分)2、有一分數(shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數(shù)列的前20項之和。(此題14分)3、編寫一個函數(shù)統(tǒng)計并打印所輸入的正文中的各個英文單詞出現(xiàn)的次數(shù)并按次數(shù)的遞減順序輸出,使用結構體實現(xiàn)。(此題16分)參考答案一、單項選擇題參考答案CCCCC【解析】此題考查if語句。先判斷if語句的條件是否成立,因為++a=l>0,所以條件成立,又因為是進行邏輯或運算,在其中一個運算對象為真的情況下,不必判斷另外一個運算對象的真假,即不進行++b操作,就可以直接得出整個表達式的值為邏輯1,執(zhí)行下面的++C。5、A6、C7、B8、A9、B【解析】一條指令就是給計算機下達的一道命令,一條指令包括操作碼和地址碼(或稱操作數(shù)),此題的答案為B。10、B【解析】字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是合法的字符串常量,而選B)是一個字符常量。BBAABCBD【解析】同類型的結構體變量可以進行整體賦值。結構體變量的地址可以作為實參傳遞給函數(shù)。結構體數(shù)組ing可以作為實參傳遞給函數(shù)。結構體成員可以包含指向本結構體的指針成員。此題答案為D選項。18、C【解析】如果沒有大括號,else總是與它上面的最近的if配對。所以此題中的elseif(ok2)是與if(!okl)配對的,首先因為a<b成立所以進一步判斷b!=15也成立,再進一步判斷!okl,為假,不執(zhí)行子句X=T;繼續(xù)判斷ok2是否為真,ok2亦為假,故子句x=10;也不執(zhí)行,最后讓x=l;輸出x,所以結果應該選擇Co19、DC、11D、128、設有如下定義:charaa[2][20]={〃abcd","abed"};那么以下說法中錯誤的是.A、aa是個二維數(shù)組,可以存放2個19個字符以下的字符串B、aa是個二維數(shù)組,每行中分別存放了字符串〃abcd〃和〃ABCD〃C、aa[O]可以看作是一維數(shù)組名D、aa[O][0]可以看作是一維數(shù)組名9、以下內(nèi)容是異常的含義的是oA、程序編譯或運行中發(fā)生的異常事件B、程序的語法錯誤C、程序編譯錯誤D、程序預先定義好的異常事件10、字符串〃\\\〃abc\〃\\〃的長度是。A、11B、7C、5D、3H、以下對一維數(shù)組a的正確說明是。A、chara(10);B、inta[];C、intk=5,a[k];D、chara[3]={'b','c'};12、以下程序的輸出結果是o^include<stdio.h>voidswap(int*a,int*b)(int*t;t二a;a=b;b=t;}main()inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf(l%d%d,*p,*q);20、C二、判斷題1、正確2、正確3、正確4、錯誤5、錯誤6、正確7、正確8、正確9、正確10、錯誤三、編程題1、ttincludevoidmain()(floatx,y,r=0.0225;inti,n;printf(〃請輸入存款本金x和存款年數(shù)n:〃);scanf(〃%f%d〃,&x,&n);y二x;for(i=l;i<=n;i++)y=y*(l+r);printf(〃%f\n〃,y);)2、程序分析:抓住分子與分母的變化規(guī)律。程序源代碼:main()(intn,t,number=20;floata=2,b=l,s=0;for(n=l;n<=number;n++){s=s+a/b;t=a;a=a+b;b=t;/*這局部是程序的關鍵*/)printf(〃sumis%9.6f\n〃,s);#include<stdio.h>#include<stdlib.h>#include<string.h>structlist{charwords[100];intnum;structlist*next;);typedefstructlistnode;typedefnode*link;voidcount(char*str){linkptr,head,ptrn,headnew;inti=0,j=0,prei=0;chartemp[20];ptr=(link)malloc(sizeof(node));head=ptr;ptr->next=NULL;do{if(*(str+i)=二’'ll*(str+i)=='\0'){temp[j]=\0';ptr=head;while(ptr->next!=NULL){if(strcmp(ptr->next->words,temp)-0){ptr->next->num++;break;)else{ptr=ptr->next;))if(ptr->next==NULL){ptr->next=(1ink)malloc(sizeof(node));strcpy(ptr->next->words,temp);ptr->next->num=l;ptr->next->next=NULL;)if(*(str+l)=='\0')break;j=0;i++;continue;temp[j++]=str[i++];}while(1);ptrn=(link)malloc(sizeof(node));headnew=ptrn;ptrn->next=NULL;ptr=head->next;ptrn=headnew;while(head->next!=NULL){while(ptrn->next!=NULL&&ptrn->next->num>=ptr->nuni)ptrn=ptrn->next;head->next=ptr->next;ptr->next=ptrn->next;ptrn->next=ptr;ptr=head-〉next;ptrn=headnew;ptr=headnew->next;while(ptr!=NULL){puts(ptr->words);printf(〃%d\n〃,ptr->num);ptr=ptr->next;}intmain(){charstr[500];gets(str);count(str);C語言題庫(四)(總分100分,考試時長90分鐘)一、單項選擇題(每題2分,共40分)1、如下說法不正確的選項是OA、c>a+b等效于c>(a+b)B、假設a,b均為真,那么a||b為真C、表達式'c'&&'d'的值為0D、邏輯運算符!比邏輯運算符||的優(yōu)先級高2、以下語句中符合c語言語法的賦值語句是oa=7+b+c=a+7;a=7+b++=a+7;C、a=7+b,b++,a+7D、a=7+b,c=a+7;3、表示關系1〈=xV=100的c語言表達式為oA、x>=l&x<=100B、x>=landx<=100C、l<=x<=100D、x>=l&&x<=1004、設變量x和y均已正確定義并賦值。以下if語句中,在編譯時將產(chǎn)生錯誤信息的是。A、if(x++);B、if(x>y&&y!=0);C、if(x>0)x-elsey++;D>if(y<0){;}elsex++;5、有以下程序ftinclude<stdio.h>main()(intc;while((c=getchar())!=’\n){switch(c,2')case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;})printf(〃\n〃);}從第一列開始輸入以下數(shù)據(jù),Vcr>代表一個回車符。2473<cr>程序的輸出結果是OA、668977B、668966C、66778777D、66887666、對下述程序的判斷中,正確的選項是omain(){char*p,s[256];P二s;while(strcmp(s,/ztheend"))(printf("inputthestring:");gets(s);while(*p)putchar(*p++);))A、此程序循環(huán)接收字符串并輸出,直到接收到字符串“theend”為止B、此程序循環(huán)接收字符串,接收到字符串“theend”那么輸出,否那么程序終止C、此程序循環(huán)接收字符串并輸出,直到接收字符串“theend"為止,但因為代碼有錯誤,程序不能正常工作D、此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串“theend”為止,輸出連接在一起的字符串7、以下選項中合法的c語言賦值語句是o++i;a=b=34C、a=3,b=9D、k=int(a+b);8、以下定義數(shù)組的語句中,正確的選項是0ftdefineN10intx[N];intN=10;intx[N];C、intx[0...10];D、intx[];9、如果一個表達式包含算術運算、關系運算、邏輯運算和字符運算時,運算的先后順序是OA、算術運算一關系運算一邏輯運算一字符運算B、算術運算一字符運算一關系運算一邏輯運算C、邏輯運算一關系運算一算術運算一字符運算D、字符運算一算術運算一邏輯運算一關系運算10、設有定義:char*c;以下選項中能夠使字符型指針c正確指向一個字符串的是。A、charstr口二〃string”;c=str;B、scanf(〃%s〃,c);C、c=getchar();D.〃工?〃、*c=string;11、以下描述中不正確的選項是OA、字符型數(shù)組中可能存放字符串。B、可以對字符型數(shù)組進行整體輸入、輸出。C、可以對整型數(shù)組進行整體輸入、輸出。D、不能在賦值語句中通過賦值運算符對字符型數(shù)組進行整體賦值。12、假設主調(diào)用函數(shù)類型為double,被調(diào)用函數(shù)定義中沒有進行函數(shù)類型說明,而return語句中的表達式類型為float型,那么被調(diào)函數(shù)返回值的類型是int型float型double型D、由系統(tǒng)當時的情況而定13、在c語言中,要求運算數(shù)必須是整型的運算符是。A、>B、++C、!=D、%14、下面程序的功能是將字符串s中所有的字符'c'刪除。ftinclude"stdio.h〃main(){chars[80];inti,j;gets(s);for(i=j=0;s[i]!='\0';i++)if(s[i]!='c');s[j]-\05;puts(s);}A、s[j++]=s[i]B、s[++j]=s[i]C、s[j>s[i];j++s[j]=s[i]15、有以下程序:main()(inta=l,b=0;if(-a)b++;elseif(a=0)b+=2;elseb+=3:printf(/z%d\nz/,b);)程序運行后的輸出結果是OA、0B、1C、2D、316、假設有以下程序段,w和k都是整型變量:w=k;lb:if(w==0)gotole;w——;printf(〃*〃);gotolb;le:.??那么不能與上面程序段等價的循環(huán)語句是A、for(w=k;w!=0;w--)printf(〃*〃);B、w=k;<CR>while(w--!=0)printf(〃*〃);w++;C、w=k;<CR>do{w--;printf(〃*〃);}while(w!=0);D、for(w=k;w;一一w)printf(〃*〃);17、有以下程序ftinclude<stdio.h>structtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;P=a;for(i=l;i<=2,i++)(printf(〃%d,〃,p->x);p=p->y;)}程序的運行結果是OA、20,30,B、30,17C、15,30,D、20,1518、以下程序的輸出結果是oftinclude<stdio.h>ftinclude<string.h>main()(charstr[12]={,s,,,t,,,r,,,i,」n\,g,};printf(/z%d\n/z,strlen(str));)A、6B、7C、11D、1219、以下能正確定義一維數(shù)組的選項是oA、inta[5]={0,1,2,3,4,5);B>chara[]={1,2,3,4,5,6);C、chara={'s','d','k'};D、inta[5]=〃0123〃;20、c語言中,定義結構體的保存字是unionstructenumD>typedef二、判斷題(每題2分,共20分)()1、c語言的標識符由字母、數(shù)字和下劃線組成,其中第一個字符必須是字母或下劃線。()2、在c語言中轉(zhuǎn)義字符有特殊的含義,它以反斜杠'開頭,后面接特定的字符。()()3、c程序總是從main()函數(shù)的第一條語句開始執(zhí)行的。()()4、while語句和do-while語句的一般形式分別如下,其主要區(qū)別是:while語句先判斷循環(huán)條件,只有條件滿足才進入循環(huán),如果一開始條件就不滿足,那么循環(huán)一次都不執(zhí)行。而do-while語句先執(zhí)行循環(huán)體,后判斷循環(huán)條件,所以無論循環(huán)條件的值如何,至少會執(zhí)行一次循環(huán)體。()5、用puts和gets函數(shù)只能輸入或輸出一個字符串。()6、函數(shù)strcpy(strl,str2);的功能是將字符串str2復制到字符串strl中。()7、數(shù)組定義后,數(shù)組名的值是一個地址,可以被修改。()8、c程序函數(shù)體是由左右方括號[]括起來的局部。()9、函數(shù)名代表該函數(shù)的入口地址。因此,可用函數(shù)名給指向函數(shù)的指針變量賦值()10、如果在同一個源文件中,外部變量與局部變量同名,那么在局部變量的作用范圍內(nèi),外部變量依然起作用。三、編程題(每題分,共40分)1、編寫程序:求100之內(nèi)的素數(shù)。(此題10分)2、百雞問題:用100元買100只雞,大公雞5元1只,母雞3元1只,小雞1元3只。問各能買多少只?(此題14分)3、題目描述,定義一個包括年、月、日的結構體變量,讀入年、月、日,計算該日在當年中是第幾天。注意閏年問題。輸入三個整數(shù),分別表示年、月、日。保證輸入是實際存在的日期,且年份在1000至3000之間(包含1000和3000)。輸出輸出該日期是一年中的第幾天。請注意行尾輸出換行。樣例輸入20121221樣例輸出356(此題16分)A、23B、34C、35D、4513、假設有定義:"int*p,x=0,*p,p=&x;〃,那么語句"printf(〃%d\n〃,*p);〃的輸出結果是。A、隨機值B、0C、x的地址D、P的地址14、設函數(shù)定義如下:floatfl(floata,floatb)(return(a+b);}假設有floatx=l.1,y=2.2;,那么以下語句中正確的函數(shù)調(diào)用是OA、printf(〃%f〃,fl();B、printf(〃%f〃,fl(&x,);C>printf(〃%f〃,fl(*x,*);D、printf(〃%f〃,fl(x,);15、有以下程序:#include<stdio.h>main(){charcl,c2,c3,c4,c5,c6;scanf(〃%c%c%c%c〃,&cl,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(cl);putchar(c2);printf(〃%c%c\n〃,c5,c6);}程序運行后,假設從鍵盤輸入(從第11列開始)123V回車〉45678V回車〉那么輸出結果是o126712561278124516、執(zhí)行循環(huán)語句后,i變量的值是i=4;while(i—);printf(〃%d〃,i);參考答案一、單項選擇題1、C2、D3、D4、C【解析】C語言規(guī)定,在“if(表達式)語句Lelse語句2;”這種形式的if語句中,在每一個else前面有一個分號,整個語句結束處有一分號。在此題的C)選項中,else前面少了一個分號,這樣程序在編譯時,會出現(xiàn)語法錯誤。5、A6、C7、A【解析】賦值語句是在賦值表達式末尾加上分號構成的。B、C選項缺少分號,不是合法語句。D選項為強制類型轉(zhuǎn)換賦值語句,但是int缺少括號,是非法語句。++i相當于i=i+1:,是合法賦值語句,A選項正確。8、A【解析】數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達式]。B選項中N是變量,不能用變量定義數(shù)組長度。C選項中數(shù)組長度是非法的一串數(shù)字。定義數(shù)組時必須為其指明長度,D選項中數(shù)組長度為空,所以非法。9、B【解析】在一個含有各種運算的表達式中,它們運算的優(yōu)先順序是:算術運算一字符運算和日期時間運算一關系運算一邏輯運算。應選項B為正確答案。10、An、c12、A13、D14、A15、D16、C17、D18、A19、B20、B二、判斷題1、正確2、正確3、正確4、正確5、正確6、正確7、錯誤8、錯誤9、正確10、錯誤三、編程題1、#include<stdio.h>#include<math.h>intmain()(inti,j,k,n=0;for(i=2;i<=100;i++)(k=(int)sqrt(i);for(j=2;j<=k;j++)if(i%j==0)break;if(j>k){printf(〃%d〃,i);n++;if(n%5—0)printf(〃\n〃);))return0;}ttinclude<stdio.h>voidmain()(intcock,hen,chick;for(cock=l;cock<=20;cock++)for(hen=l;hen<=33;hen++)for(chick=l;chick<=100;chick++)if((cock+hen+chick==100)&&(15*cock+9*hen+l*chick==300))
printf(〃公雞:%4d母雞:%4d小雞:%4d\n/z,cock,hen,chick);#include<stdio.h>intmain(){structdd{inty,m,d;date;inti,j,k;scanf(〃%d%d%d〃,&date.y,&date.m,&date.d);k=date.d;if(date.m>l)if(date.m>2)if(date.m>3)if(date.m>4)if(date.m>5)if(date.m>6)if(date.m>7)if(date.m>8)if(date.m>9)k+=31k+=28k+=31k+=30k+=31kk+=31k+=28k+=31k+=30k+=31k十=30k+=31k+=31k+=30if(date.m>ll)k+=30;if(date.y%4=0&&date.y%100!=0|date.y%400==0)k++;printf(〃%d〃,k);C語言題庫(五)(總分100分,考試時長90分鐘)一、單項選擇題(每題2分,共40分)1、假設變量已正確定義并賦值,以下符合c語言語法的表達式是a:=b+la=b=c+2int18.5%3a=a+7=c+b2、以下說法中正確的選項是oA、#define和printf都是C語句B、#define是C語句,而printf不是。C、printf是C語句,但#(^門!16不是。D、#define和printf都不是C語句3、以下選項中,與k=n++完全等價的表達式是ok=n,n=n+ln=n+l,k=nk=++nk+=n+l4、與y=(x>0?l:x<0?-l:0);的功能相同的if語句是。A、if(x>0)y=l;elseif(x<0)y=_l;elsey=0;B、if(x)if(x>0)y=l;elseif(x<0)y=-l;elsey=0;C>y=-lif(x)if(x>0)y=l;elseif(x==0)y=0;elsey=-l;D>y=0;if(x>=0)if(x>0)y=l;elsey=T;5、以下表達中正確的選項是oA、continue語句使得整個循環(huán)終止B、break語句不能用于提前結束for語句的本層循環(huán)C、使用breakswitch語句可以使流程跳出語句體D、在for語句中,continue與break的效果是一樣的,可以互換6、關于c語言中print()函數(shù)與scanf()函數(shù),以下描述中正確的選項是。A、printf()函數(shù)可以向任何地方輸出數(shù)據(jù)B、printf()只向控制臺輸出數(shù)據(jù)C、scanf()只能輸入英文字母和數(shù)字D、scanf()函數(shù)可以識別輸入的空格7、以下四組選項中,均不是c語言關鍵字的選項是odefineIFtypegetccharprintfincludescanfcasewhilegopow8、以下定義數(shù)組的語句,正確的選項是oA、intN=10;intx[N];#defineN10;intx[N];C、intx[0..10];D、intx[];9、以下選項中不合法的標識是oA、&aB、FORC、printD、_0010、下面正確的字符串常量是OA、'a'B、’376'〃\n〃D、37611、對于int*pa[5];的描述,以下哪個選項是正確的A、pa是一個指向數(shù)組的指針,所指向的數(shù)組是五個int類型的指針B、pa是一個具有五個元素的指針數(shù)組,每個元素都是一個int類型的指針C、pa[5]表示某個數(shù)的第五個元素的值D、pa是一個指向某個數(shù)組中第五個元素的指針,該元素是int類型的變量12、有以下函數(shù)intfun(char*s)char*t=s;while(*t++);return(t-s);}該函數(shù)的功能是OA、比擬兩個字符串的大小B、計算S所指字符串占用內(nèi)存字節(jié)的個數(shù)C、計算S所指字符串的長度D、將S所指字符串復制到字符串t中13、在微機漢字系統(tǒng)中,一個漢字的機內(nèi)碼占的字節(jié)數(shù)是A、1B、2C、4D、814、有以下程序:voidfun(int*pl,int*p2,int*s){s=(int*)manoc(sizeof(int));*s二*pl+*p2;free(s);)main(){inta二1,b=40,*q二&a;fun(&a,&b,q);printf(〃%d\n〃,*q);)程序運行后的輸出結果是OA、42B、0C、1D、4115、有以下程序main(){char*p[10]={〃abc〃,〃aabdfg〃,〃dcdbe〃,〃abbd〃,〃cd〃};printf(〃/d\n〃,strlen(p[4]));)執(zhí)行后輸出結果是。A、2B、3C、4D、516、關于循環(huán)體while的說法以下正確的選項是。A、循環(huán)體的執(zhí)行次數(shù)總比條件表達式多一次B、循環(huán)體的執(zhí)行次數(shù)總比條件表達式少一次C、循環(huán)體的執(zhí)行次數(shù)與條件表達式無關D、循環(huán)體的執(zhí)行次數(shù)與條件表達式相等17、以下選項中不能正確把cl定義成結構體變量的是typedefstruct(intred;intgreen;intblue;}COLOR;COLORcl;structcolorcl(intred;intgreen;intblue;);structcolor{intred;intgreen;intblue;}cl;struct{intred;intgreen;intblue;}cl;18、有以下程序main()inti=10,j=l;printf(〃%d,%d\n〃,i一,++j);)執(zhí)行后輸出的結果是OA、9,2B、10,2C、9,1D、10,119、著有以下定義,那么()是對a數(shù)組元素地址的正確引用。inta[5],*p=a;A、p+5B、*a+lC、&a+1&a[0]20、以下結構體類型說明和變量定義中正確的選項是otypedefstructintn;charc;REC;RECtl,t2;struetREC;intn;charc;;RECtl,t2;typedefstructREC;intn=0;charc='A';tl,t2;RECtl,t2;D>structintn;charc;REC;二、判斷題(每題2分,共20分)()1、執(zhí)行以下語句后,輸出2.50。printf("%.2f”,(double)5/2);()2、〃口〃運算符的優(yōu)先級比〃一運算符的優(yōu)先低()3、指針變量和它指向的變量之間的關系,可以用指針運算符表示()4、循環(huán)體如果包含一個以上語句,應該用圓括弧括起來,以復合語句的形式出現(xiàn)。()5、用strcat(字符串1,字符串2)連接兩個字符串函數(shù)時,字符串1的存儲空間沒有限制。()6、c語言中的main。函數(shù)是程序的入口。()7、對以下定義的二維數(shù)組table,其行下標的取值范圍是[0,2],列下標的取值范圍是[0,1],數(shù)組元素分別是:table[0][0]、tabletable⑴⑻、table[1][1Ktable[2][0]和table[2][1],可以表示一個3行2列的矩陣。inttable[3][2];()8、指針變量,只能作為函數(shù)的形參,不可以作函數(shù)的實參()9、數(shù)組名是一個指針,它可以指向數(shù)組中的任何元素。()()10、靜態(tài)外部變量只在本文件內(nèi)可用.三、編程題(每題分,共40分)1、一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?(此題10分)2、編寫程序:求0—7所能組成的奇數(shù)個數(shù)。比方:1位數(shù)為奇數(shù)的個數(shù)42位數(shù)為奇數(shù)的個數(shù)283位數(shù)為奇數(shù)的個數(shù)224(此題14分)3、定義一個結構體student,存儲學生的學號、名字、性別和年齡,讀入每個學生的所有信息,保存在結構體中,并輸出。結構體student的定義如下:structstudent{intnum;charname[20];charsex;intage;};此題要求使用指向結構體數(shù)組進行輸入和輸出。輸入:第一行有一個整數(shù)n,表示以下有n個學生的信息將會輸入。保證n不大于20o以后的n行中,每一行包含對應學生的學號、名字、性別和年齡,用空格隔開。保證每一個人名都不包含空格且長度不超過15,性別用M和F兩個字符來表小。輸出:有n行,每行輸出一個學生的學號、名字、性別和年齡,用空格隔開。請注意行尾輸出換行。樣例輸入:310101LiLinM1810102ZhangFunM1910104WangMinF20樣例輸出:10101LiLinM1810102ZhangFunM1910104WangMinF20(此題16分)A、0B、-1C、1D、有錯誤17、下面定義結構變量的語句中錯誤的選項是structstudent{intnum;charname[20];}S;struct{intnum;charname[20];}S:C、structstudent{intnum;charname[20];};structstudents;D、structstudent{intnum;charname[20];);students;18、以下程序的輸出結果是.ftinclude<stdio.h>fun(intx,inty,intz)(z=x*x+y*y;)voidmain()(inta=31;fun(5,2,a);printf(〃%d〃,a);}A、0B、29C、31D、無定值19、以下能正確定義二維數(shù)組的是。A、inta[][3]={1,2,3,4,5,6};B、inta[][3]={2*3};參考答案一、單項選擇題1、B【解析】此題考查C語言的正確賦值方法。a=b=c+2實際上相當于a=(b=c+2),進而可分解為兩個表達式:b飛+2和2=上注意:選項A)中包含一個不合法的運算符“:=”;選項C)應改為(int)18.5%3;選項D)可理解為兩個表達式:2+7飛+13和2=2+7,其中第一個是錯的,因為C語言規(guī)定賦值號的左邊只能是單個變量,不能是表達式或常量等。2、D3、A【解析】k=n++的意思是先將n的值賦給k,然后n的值再加1,選項A)符合題意;選項B)和C)是先使n的值加1,然后再賦值給k;選項D)等價于k=k+(n+l)o4、A5、C【解析】break語句通常用在循環(huán)語句和開關語句中。當break用于開關語句switch中時可使程序跳出switchswitch而執(zhí)行以后的語句;當break語句用于do-whie、for、while循環(huán)語句中時可使程序終止循環(huán)而執(zhí)行循環(huán)后面的語句,即滿足條件時便跳出循環(huán)。continue語句的作用是跳過循環(huán)體中剩余的語句而強行執(zhí)行下一次循環(huán)。A,B和D三個選項中均有錯誤。因此C選項正確。6、B【解析】printf()是向控制臺輸出的函數(shù)7、A8、B【解析】數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達式];其中類型說明符可以是任一種基本數(shù)據(jù)類型或構造數(shù)據(jù)類型,數(shù)組名是定義的數(shù)組標識符。常量表達式表示數(shù)據(jù)元素的個數(shù),也就是數(shù)組的長度,必須是整型常量。9、A10、C11、B12、B【解析】循環(huán)語句while(*t++);執(zhí)行完時,指針變量t就指向了字符串結束符''0'之后的位置,所以語句return(t-s);返回的就是字符串s所用內(nèi)存的字節(jié)個數(shù)。13、B14、C15、A16、B17、B18、B19、D20、A【解析】struct結構體名后不能加“;”號,所以選項B、C錯誤,選項D中應為structtl,t2;選項A為正確的定義形式。二、判斷題1、正確2、錯誤3、正確4、錯誤5、錯誤6、正確7、正確8、正確9、錯誤10、正確三、編程題I、程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結果滿足如下條件,即是結果。請看具體分析:程序源代碼:#include"math.h〃main(){longinti,x,y,z;for(i=l;i<100000;i++)(x=sqrt(i+100);/*x為加上100后開方后的結果*/y=sqrt(i+268);/*y為再加上168后開方后的結果*/if(x*x=i+100&&y*y=i+268)/*如果一個數(shù)的平方根的平方等于該數(shù),這說明此數(shù)是完全平方數(shù)*/printf(〃\n%ld\n〃,i);))2、#include<stdio.h>intmain(intagrc,char*agrv[])longsum=4,s=4;〃sum的初始值為4表示,只有一位數(shù)字組成的奇數(shù)個數(shù)為4個intj;for(j=2;j<=8;j++)(printf("d位數(shù)為奇數(shù)的個數(shù)%ld\n”,j-1,s);if(j<=2)s*二7;elses*=8;sum+=s;)printf(〃/d位數(shù)為奇數(shù)的個數(shù)%ld\n〃,j-1,s);printf(〃奇數(shù)的總個數(shù)為:%ld\n〃,sum);//system("pause");return0;}3、#include<stdio.h>structstudent{intnum;charname[20];charsex;intage;}stu[20],*p;intmain(){intn;scanf(〃%d〃,&n);p=stu;for(inti=0;i<n;i++){scanf(zz%d%s%c%d〃,&p->nu叫p->name,&p->sex,&p->age);printf(,z%d%s%c%d\n〃,p->num,p->name,p->sex,p->age);)returnO;C語言題庫(六)(總分100分,考試時長90分鐘)一、單項選擇題(每題2分,共40分)1、以下選項中不屬于字符常量的是。A、'C'B、〃C〃C、'\xCC0'D、'\072'2、三個用不同數(shù)制表示的整數(shù)a=00111101b,b=3ch,c=64d,那么能成立的比較關系式oA、A<B<CB、B<C<AC、B<A<CD、C<B<A3、以下變量聲明中正確的選項是。A、intB、_strC、6xyD、h7#4、c語言中,關系表達式和邏輯表達式的值是oA、0B、0或1C、1D、'T'或'F'5、以下表達中正確的選項是。A、break語句只能用于switch語句B、在switch語句中必須使用defaultC、break語句必須與switch語句中的case配對使用D、在switch語句中,不一定使用break語句6、在下面的函數(shù)聲明中,存在著語法錯誤的選項是oA、voidBC(inta,inB、voidBD(int,invoidBE(int,intt=5)D>intBF(intx;int7、該語句打印結果為(每個d后都有空格)printf(級d〃,printf(,,%d\printf(〃%d〃,43)));A、4321B、434343C>433243218、數(shù)組定義為inta[3][2]={1,2,3,4,5,6},數(shù)組元素()的值為6。A、a[3][2]B、a[2][l]C、a[l][2]D、a[2][3]9、以下表達中不正確的選項是oA、預處理命令行都必須以撐號開始,結尾不加分號B、在程序中但凡以#號開始的語句行都是預處理命令行C、C程序在執(zhí)行過程中對預處理命令進行處理D、預處理命令可以放在程序中的任何位置10、判斷兩個字符串是否相等,正確的表達方式是owhile(sl==s2)B>while(sl=s2)C、while(strcmp(si,s2)==0)D>while(strcmp(si,s2)=0)11、定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9};那么下面語句for(i=0;i<3;i++)printf面%d",x[i][2-i]);的輸出結果是oA、159B、147C、357D、36912、下面表達中錯誤的選項是oA、函數(shù)的形式參數(shù),在函數(shù)未被調(diào)用時就不被分配存儲空間B、假設函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,那么可以不必再加說明C、假設一個函數(shù)沒有return語句,那么什么值也不會返回D、一般來說,函數(shù)的形參和實參的類型要一致13、c語言的注釋定界符是oA、{)B、[]\**\/**/14、以下表達中不正確的選項是oA、一個變量的作用域完全取決于變量定義語句的位置B、全局變量可以在函數(shù)以外的任何部位進行定義C、局部變量的“生存期”只限于本次函數(shù)調(diào)用,因此不可能將局部變量的運算結果保存至下一次調(diào)用D、一個變量說明為static存儲類別是為于限制其它編譯單位的引用15、有以下程序:main(){inty=l,x=2,z=3;printf("%d,%d\n”,(++x,y++),z+2);}執(zhí)行后的輸出結果是OA、3,5B、2,5C、3,3D、1,516>c語言中while和do-while循環(huán)的主要區(qū)別是oA、do-while的循環(huán)體至少無條件執(zhí)行一次B、while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴格C、do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)D、do-while的循環(huán)體不能是復合語句17、設有以下說明語句:typedefstructstu{inta;floatb;)stutype;那么下面表達中錯誤的選項是oA、struct是結構類型的關鍵字B、structstu是用戶定義的結構類型C、a和b都是結構成員名D、stutype是用戶定義的結構體變量名18、下面程序段的運行結果是.intx=0,y=0;while(x<15)y++,x+=++y;printf("%d,%d”,y,x);A、20,7B、6,12C、20,8D、8,2019、以下哪個數(shù)組定義是正確的inta[5)5];INTa[10];C>inta[n];D、inta[3+2];20、設有以下說明語句typedefstruct(intn;charch[8];}per;那么下面表達中正確的選項是OA、PER是結構體變量名B、PER是結構體類型名C、typedefstruct是結構體類型D、struct是結構體類型名二、判斷題(每題2分,共20分)()1、在標準c語言中,數(shù)組的下標必須是常量,不允許是表達式。()2、在一定范圍內(nèi),字符型數(shù)據(jù)也可以像整型數(shù)據(jù)那樣使用。()3、在定義數(shù)組時,什么時候都不可以將該數(shù)組的維數(shù)省略。()4、在循環(huán)過程中,使用break語句和continue語句的作用是一樣的()5、字符串必須以'0'結束,但字符數(shù)組可以不包括’0'。()6、c語言函數(shù)默認的返回值類型是int。()()7、一個數(shù)組是由連續(xù)的一塊內(nèi)存單元組成的,指針變量就是這塊連續(xù)內(nèi)存單元的首地址)8、一個自定義函數(shù)中可以根據(jù)不同情況設置多條return語句。()()9、任何數(shù)組在使用前必須先定義。()10、c程序的執(zhí)行是從程序文件的第一個函數(shù)開始,到最后一個函數(shù)結束。()三、編程題(每題分,共40分)1、打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個“水仙花數(shù)”,因為153=1的三次方+5的三次方+3的三次方。(此題10分)2、編寫程序:編寫一個函數(shù),輸入n為偶數(shù)時,調(diào)用函數(shù)求1/2+1/4+...+l/n,當輸入n為奇數(shù)時,調(diào)用函數(shù)1/1+1/3+...+l/n(利用指針函數(shù))。(此題14分)3、編程序建立一個帶有頭結點的單向鏈表,鏈表結點中的數(shù)據(jù)通過鍵盤輸入當輸入數(shù)據(jù)為-1時表示輸入結束,使用結構體實現(xiàn)。(此題16分)參考答案一、單項選擇題1、B2、C【解析】把數(shù)字都轉(zhuǎn)換為一種格式。3、B4、B5、D【解析】break語句的功能是跳出正在執(zhí)行的條件語句或循環(huán)語句。它可以出現(xiàn)在switch語句中,也可以出現(xiàn)在循環(huán)語句中。default語句的功能是如果所有case后面的語句都不執(zhí)行的時候,就轉(zhuǎn)去執(zhí)行default后的語句,它可以省略不寫。前面我們說過,break語何可以出現(xiàn)在循環(huán)語句中,所以選項0也是錯誤的。6、D【解析】函數(shù)聲明時,可以指定其形參的默認值,不過要從右向左指定;可以省略形參名,僅以形參類型表示;形參表之間用逗號分割。因此,此題答案為Do7、C8、B9、C【解析】此題考查預處理命令的特點。編譯預處理命令的特點有:①為了區(qū)分一般的語句,預處理命令行都必須以W}開始,結尾不加分號;②預處理命令可以放在程序中的任意位置;③在程序中但凡以撐開始的語句都是預處理命令行。10、Cn、C12、C13、D14、C15、D【解析】此題考查逗號表達式。逗號表達武的求解步驟是先求解表達式1,然后依次求解表達式2,直到表達式N的值。整個逗號表達式的值就足最后一個表達式N的值。(++x,y++)這個表達式的返回值是y++,先使用y的債,然后將y加1,所以輸出第一個值為1。第二個輸出的值為z+2=3+2=5。16、A17、D18、D19、D20、B二、判斷題1、錯誤2、正確3、錯誤4、錯誤5、正確6、正確7、錯誤8、正確9、正確10、錯誤三、編程題1、程序分析:利
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球鍍銅光亮劑行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國母嬰健康產(chǎn)后護理行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國敏捷滲透測試行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國LTCC用導電銀漿行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025建筑安裝工程承包合同范本版
- 教室租賃合同范本
- 2025工礦企業(yè)大型成套設備采購合同范本
- 裝修設計合同范本大全
- 2025勞動合同試用期法律疑難問題詳解
- 門店合伙協(xié)議合同范本
- 2024年1月高考適應性測試“九省聯(lián)考”數(shù)學 試題(學生版+解析版)
- JT-T-1004.1-2015城市軌道交通行車調(diào)度員技能和素質(zhì)要求第1部分:地鐵輕軌和單軌
- (高清版)WST 408-2024 定量檢驗程序分析性能驗證指南
- (正式版)JBT 11270-2024 立體倉庫組合式鋼結構貨架技術規(guī)范
- DB11∕T 2035-2022 供暖民用建筑室溫無線采集系統(tǒng)技術要求
- 《復旦大學》課件
- 針灸與按摩綜合療法
- Photoshop 2022從入門到精通
- T-GDWJ 013-2022 廣東省健康醫(yī)療數(shù)據(jù)安全分類分級管理技術規(guī)范
- 校本課程生活中的化學
- DB43-T 2775-2023 花櫚木播種育苗技術規(guī)程
評論
0/150
提交評論