




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章C語言程序設計概述一、選擇題1.下列關于計算機語言的敘述中,正確的是_______。A.在計算機語言中,只有機器語言屬于低級語言B.高級語言的源程序可以被計算機直接執行C.C語言屬于高級語言D.機器語言是與所有機器無關的語言2.源程序TEST.C經編譯產生的目標文件和連接后產生的可執行文件是_______。A.TEST.BAK和TEST.OBJ B.TEST.OBJ和TEST.EXEC.TEST.EXE和TEST.C D.TEST.BAK和TEST.EXE3.一個C程序的執行是從_______。A.本程序的main函數開始,到main函數結束B.本程序文件的第一個函數開始,到本程序文件的最后一個函數結束C.本程序的main函數開始,到本程序文件的最后一個函數結束D.本程序文件的第一個函數開始,到本程序main函數結束4.以下敘述正確的是_______。A.在C程序中,main函數必須位于程序的最前面B.程序的每行中只能寫一條語句C.C語言本身沒有輸入輸出語句D.在對一個C程序進行編譯的過程中,可發現注釋中的拼寫錯誤5.以下敘述不正確的是_______。A.一個C源程序可由一個或多個函數組成B.一個C源程序必須包含一個main函數C.在C程序中,注釋說明只能位于一條語句的后面D.C程序的基本組成單位是函數6.一個C語言程序是由_______。A.一個主程序和若干子程序組成B.函數組成C.若干過程組成D.若干子程序組成7.關于C語言程序書寫規則說法中正確的是_______。A.程序語句必須占一行 B.不區分大小寫C.每行必須有行號 D.每條語句用分號結束8.下面關于算法的說法,錯誤的是_______。A.算法必須有輸出,但不一定有輸入B.算法必須在計算機上用某種語言實現C.算法必須在有限步執行后能結束D.算法的每一步驟必須有確切的定義9.結構化程序設計規定的3種基本控制結構是_______。A.順序、選擇和轉向 B.層次、網狀和循環C.模塊、選擇和循環 D.順序、選擇和循環10.結構化程序由三種基本結構組成,三種基本結構組成的算法_______。A.可以完成任何復雜的任務 B.只能完成部分復雜的任務C.只能完成符合結構化的任務 D.只能完成一些簡單的任務二、填空題1.C源程序的基本單位是________,一個C源程序中必須包括一個________。2.在一個C源程序中,注釋部分兩側的分界符分別為________和________。3.C語言源程序文件的后綴是________;經過編譯后,生成文件的后綴是________;經過連接后,生成的文件的后綴是________。4.結構化程序由________、________、________,3種基本結構組成。三、編程題1.編寫一個程序,用2個printf()語句分別輸出學校名稱和自己的姓名。2.編寫一個程序,用1個printf()語句輸出學校名稱和自己的姓名。
第2章數據類型及其運算一、選擇題1.下面四個選項中,均是不合法的用戶標識符的選項的是____C___。A.Ap_odo B.floatlao_AC.b-agotoint D._123tempINT2.以下選項中可以作為C語言中合法整數的是___C____。A. 10110B B. 0386 C. 0Xffa D. x2a23.以下選項中合法的實型常數是__C_____。A.5E2.0 B.E-3 C.2E0 D.1.3E4.以下選項中可作為C語言合法常量的是__A_____。A.-80 B.-080 C.-8e1.0 D.-80.0e5.下面四個選項中,均是合法轉義字符的選項是__B___。A.'\''\\''\n' B.'\'''\017''\t'C.'\018''\f''\xab' D.'\\0''\101''x1f'6.下面不正確的字符串常量是__A_____。A.'abc' B."12’12" C."0" D.""7.以下選項中不屬于C語言的類型的是____D___。A.signedshortint B.unsignedlongintC.unsignedint D.longshort8.在C語言中,要求運算數必須是整型的運算符是___D____。A./ B.++ C.!= D.%9.以下運算符中優先級最低的是___A____,以下運算符中優先級最高的是__B_____。A.&& B.<= C.|| D.==10.若x=2,y=3,則x&&y的結果是___B____。A.0 B.1 C.2 D.311.若x,i,j和k都是int型變量,則計算表達式x=(i=4,j=16,k=32)后,x的值為__C_____。A.4 B.16 C.32 D.5212.若有定義:inta=7;floatx=2.5,y=4.7;,則表達式x+a%3*(int)(x+y)%2/4的值是__A_____。A.2.500000 B.2.750000 C.3.500000 D.0.00000013.若有以下類型說明語句:charw;intx;floaty;doublez;,則表達式w*x+z-y的結果為_D______類型。A.float B.char C.int D.double14.已有定義:intx=3,y=4,z=5;則表達式!(x+y)+z–1&&y+z/2的值是__D_____。A.6 B.0 C.2 D.115.以下選項中非法的表達式是___D____。A.0<=x<100 B.i=j==0 C.(char)(65+3) D.x+1=x+116.設a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值為___C____。A.0 B.1 C.2 D.317.若變量c為char類型,能正確判斷出c為小寫字母的表達式是___D____。A.'a'<=c<='z' B.(c>='a')||(c<='z')C.('a'<=c)and('z'>=c) D.(c>='a')&&(c<='z')18.若x和y代表整型數,以下表達式中不能正確表示數學關系|x―y|<10的是____C___。A.abs(x–y)<10 B.x–y>-10&&x–y<10C.!(x–y)<-10||!(y–x)>10 D.(x–y)*(x–y)<100二、填空題1.C語言中的標識符只能由三種字符組成,它們是_______,_______和_______。2.在C語言中(以32位PC機為例),一個char型數據在內存中所占的字節數為_______,一個int型數據在內存中所占的字節數為_______,一個float型數據在內存中所占的字節數為_______,一個double型數據在內存中所占的字節數為_______。3.有以下定義intm=5,y=2;則計算表達式y+=y-=m*=y后的y值是_______。4.若定義:inta=2,b=3;floatx=3.5,y=2.5;則表達式(float)(a+b)/2+(int)x%(int)y的值是_______。5.x和n均為int型變量,且x的初值為12,n的初值為5,則計算表達式x%=(n%=2)后x的值為_______。6.設所有變量均為整型,則表達式(a=2,b=5,a++,b++,a+b)的值為_______。7.a、b和c均是int型變量,則計算表達式a=(b=4)+(c=2)后,a值為_______,b值為_______,c值為_______。8.a是int型變量,且a的初值為6,則計算表達式a+=a-=a*a后a的值為_______。9.設y是int型變量,請寫出判斷y為奇數的關系表達式_______。10.若a,b,c均為整型變量,則執行以下語句a=b=c=0;a++&&++b||c++;后,a的值為_______,b的值為_______,c的值為_______。三、程序閱讀題1.下面程序的運行結果是__b_____。#include<stdio.h>intmain(){charm; m='B'+32; printf("%c\n",m); return0;}2.下面程序的運行結果是__0_____。#include<stdio.h>intmain(){intx=3,y=5; printf("%d\n",x/y); return0;}3.下面程序的運行結果是___0____。#include<stdio.h>intmain(){intm=0xabc,n=0xabc; m-=n; printf("%x\n",m); return0;}4.下面程序的運行結果是__10,2_____。#include<stdio.h>intmain(){intx=10,y=3; printf("%d,%d\n",x++,--y); return0;}5.下面程序的運行結果是_9,10,9,10______。#include<stdio.h>intmain(){inti,j; i=8; j=10; printf("%d,%d,%d,%d\n",i,j,++i,j++); return0;}6.下面程序的運行結果是____3,1,0,0___。#include<stdio.h>intmain(){inta=1,b=2,c=3; printf("%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c)); return0;}7.下面程序的運行結果是__3,20,30,1_____。#include<stdio.h>intmain(){inta=2,b=20,c=30,d; d=++a<=10||b-->=20||c++; printf("%d,%d,%d,%d\n",a,b,c,d); return0;}
第3章語句與輸入輸出一、選擇題1.設有定義:longx=123456L;,則以下能夠正確輸出變量x值的語句是_______。A.printf("x=%d\n",x); B.printf("x=%ld\n",x);C.printf("x=%8dL\n",x); D.printf("x=%LD\n",x);2.若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);執行后輸出結果是_______。A.0X0 B.0x0 C.0 D.0XABC3.已知chara='\103';則語句printf("%3d",a);執行后的輸出結果為_______。A.67 B.'C' C.67 D.1034.已知a、b、c為int類型,執行語句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若要使得a為1,b為2,c為3。則以下選項中正確的輸入形式是_______。A.a=1 B.1,2,3 C.a=1,b=2,c=3 D.123b=2c=35.已知i、j、k為int型變量,若從鍵盤輸入:1,2,3↙,使i的值為1、j的值為2、k的值為3,以下選項中正確的輸入語句是_______。A.scanf("%2d%2d%2d",&i,&j,&k); B.scanf("%d%d%d",&i,&j,&k);C.scanf("%d,%d,%d",&i,&j,&k); D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);6.x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數據,正確的輸入語句是_______。A.INPUTx、y、z;B.scanf("%d,%d,%d",&x,&y,&z);C.scanf("%d,%d,%d",x,y,z);D.read("%d,%d,%d",&x,&y,&z);7.若有inta;floatb;scanf("%d,%f",&a,&b);使a、b的值分別為30和5.5,則正確的輸入是_______。A.305.5 B.30,5.5 C.a=30,b=5.5 D.a=30b=5.58.根據以下定義語句和數據的輸入方式,scanf語句的正確形式應為_______。已有定義:floatf1,f2;數據的輸入方式:4.52↙3.5↙A.scanf("%f,%f",&f1,&f2);B.scanf("%f%f",&f1,&f2);C.scanf("%3.2f%2.1f",&f1,&f2);D.scanf("%3.2f%2.1f",&f1,&f2);9.以下針對scanf()函數的敘述中,正確的是_______。A.輸入項可以為一實型常量,如scanf("%f",3.5);B.只有格式控制,沒有輸入項,也能進行正確輸入,如scanf("a=%d,b=%d");C.當輸入一個實型數據時,格式控制部分應規定小數點后的位數,如:scanf("%4.2f",&f);D.當輸入數據時,必須指明變量的地址,如scanf("%f",&f);10.有以下程序#include<stdio.h>intmain(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當運行時輸入a↙后,以下敘述正確的是_______。A.變量c1被賦予字符a,c2被賦予回車符B.程序將等待用戶輸入2個字符C.變量c1被賦予字符a,c2中仍是原有字符2D.變量c1被賦予字符a,c2中將無確定值二、填空題1.已知floatf=123.467;,則執行語句printf("%.2f\n",f);,輸出結果是_______。2.已知字符'A'的ASCII值為十進制65,變量c為字符型,則執行語句c='A'+'6'-'3';printf("%c\n",c);,輸出結果是_______。3.scanf()函數在輸入數據時默認的分隔符有_______、Tab、空格。4.已知:inti=10,j=1;則執行語句printf("%d,%d",i++,++j);后,輸出結果_______。三、程序閱讀題1.下面程序的運行結果是__261_____。#include<stdio.h>intmain(){intm=177;printf("%o\n",m); return0;}2.下面程序的運行結果是___20____。#include<stdio.h>intmain(){intn=0;n+=(n=10);printf("%d\n",n); return0;}3.下面程序的運行結果是_201,10______。#include<stdio.h>intmain(){inta=201,b=012;printf("%2d,%2d\n",a,b);return0;}4.下面程序的運行結果是_y=4630,y=4630______。#include<stdio.h>intmain(){inty=2456;printf("y=%3o\n",y);printf("y=%8o\n",y); return0;}5.下面程序的運行結果是__*3.140000,3.142*_____。#include<stdio.h>intmain(){printf("*%f,%4.3f*\n",3.14,3.1415); return0;}6.下面程序的運行結果是_______。#include<stdio.h>intmain(){charc='x';printf("c:dec=%d,oct=%o,hex=%x,ASCII=%c\n",c,c,c,c); return0;}7.下面程序的運行結果是_______。#include<stdio.h>intmain(){intx=1,y=2;printf("x=%dy=%d*sum*=%d\n",x,y,x+y);printf("10squaredis:%d\n",10*10); return0;}8.下面程序的運行結果是_______。#include<stdio.h>intmain(){intn=100;charc;floatf=10.0;doublex;x=f*=n/=(c=48);printf("%d%d%3.1f%3.1f\n",n,c,f,x); return0;}9.下面程序的運行結果是_______。運行時從鍵盤輸入:251310↙。#include<stdio.h>intmain(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n",x+y+z); return0;}10.下面程序的運行結果是_______。運行時從鍵盤輸入:55AB↙。#include<stdio.h>intmain(){intk=0;charc1='a',c2='b';scanf("%d%c%c",&k,&c1,&c2);printf("%d,%c,%c\n",k,c1,c2); return0;}四、編程題1.編寫一個程序,讀入一個字母,輸出與之對應的ASCII碼值。2.編寫一個程序,從鍵盤輸入圓的半徑r,圓柱的高h,分別計算出圓周長cl、圓面積cs和圓柱的體積cv,輸出計算結果時要求保留小數點后4位。3.編寫一個程序,輸入一個三位數,分別求出這個三位數的個位、十位和百位上的數。
第4章選擇結構程序設計一、選擇題1.if語句的選擇條件是_d____。A.只能用關系表達式 B.只能用關系表達式或邏輯表達式C.只能用邏輯表達式 D.可以用任何表達式2.已知intx=2,y=-1,z=3;,執行下面語句后,z的值是____c___。if(x<y)if(y<0)z=1;elsez++;A.1 B.2 C.3 D.43.以下程序段的輸出結果是___c____。inta=2,b=1,c=2;if(a<b)if(b<0)c=0;elsec+=1;printf("%d\n",c);A.0 B.1 C.2 D.34.當a=1,b=3,c=5,d=4時,執行下面一段程序后,x的值為__b_____。if(a<b) if(c<d) x=1; elseif(a<c)if(b<d)x=2; elsex=3; elsex=6;elsex=7;A.1 B.2 C.3 D.65.為了避免嵌套的if-else的二義性,C語言規定,else與___b____配對。A.與最外層的if B.其之前最近的不帶else的ifC.其之后最近的if D.與最近的{}之前的if6.若有定義:floatw;inta,b;則合法的switch語句是__d_____。A. switch(w) B. switch(a){ {case1.0:printf("*\n"); case1printf("*\n"); case2.0:printf("**\n"); case2printf("**\n");} }C. switch(b) D. switch(a+b); { {case1:printf("*\n"); case1:printf("*\n"); default:printf("\n"); case2:printf("**\n"); case1+2:printf("**\n"); default:printf("\n"); } }二、程序閱讀題1.下面程序的運行結果是____10___。運行時從鍵盤輸入:9↙。#include<stdio.h>intmain(){intn;scanf("%d",&n);if(n++<10)printf("%d\n",n);elseprintf("%d\n",n--);return0;}2.下面程序的運行結果是___2,2,2____。#include<stdio.h>intmain(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);return0;}3.下面程序的運行結果是___6____。#include<stdio.h>intmain(){intm=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); return0;}4.下面程序的運行結果是__97,b_____。#include<stdio.h>intmain(){charc1=97;if(c1>='a'&&c1<='z') printf("%d,%c",c1,c1+1);elseprintf("%c",c1);return0;}5.下面程序的運行結果是__c__=_-1__。#include<stdio.h>intmain(){inta=1,b=2,c=3;if(a>b) c=1;elseif(a==b)c=0;else c=-1;printf("c=%d",c);return0;}6.下面程序的運行結果是__8888_____。運行時從鍵盤輸入:88↙。#include<stdio.h>intmain(){inta;scanf("%d",&a);if(a>90)printf("%d",a);if(a>80)printf("%d",a);if(a>70)printf("%d",a);return0;}7.下面程序的運行結果是____20,0___。#include<stdio.h>intmain(){intx=10,y=20,t=0;if(x==y) t=x;x=y;y=t;printf("%d,%d\n",x,y);return0;}8.下面程序的運行結果是__2,1_____。#include<stdio.h>intmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++; b++;}printf("%d,%d",a,b);return0;}9.下面程序的運行結果是_ 1,1 2,2 2,1 -2,2______。運行時從鍵盤輸入:1↙。#includestdio.h>intmain(){intk;scanf("%d",&k);switch(k){ case1:printf("%d,%d\n",k++,k); case2:printf("%d,%d\n",k,k--);case3:printf("%d,%d\n",++k,k);case4:printf("%d,%d\n",-k,k++); break;default:printf("full!\n");}return0;}10.下面程序的運行結果是__a=1,b=3_____。#include<stdio.h>intmain(){intx=1,y=1,a=0,b=0; switch(x) {case1:switch(y) {case0:a++; case1:b++; case2:b++; break; }case2:a++; b++; break;case3:a++; b++;}printf("a=%d,b=%d\n",a,b);return0;}三、程序完善題1.下面程序用于將輸入的三個數從小到大排序輸出。#include<stdio.h>intmain(){ inta,b,c,x,y;scanf("%d%d%d",&a,&b,&c); if(_a>b______){x=a;y=b;} else {x=b;y=a;} if(___c>x____)x=c; else if(y>c)y=c;printf("%d,%d,%d",y,a+b+c–x–y,x);return0;}四、編程題1.編寫一個程序,從鍵盤上輸入4個整數,輸出其中的最小值。1.【參考代碼】#include<stdio.h>intmain(){ inta,b,c,d,min; printf("輸入4個整數:"); scanf("%d%d%d%d",&a,&b,&c,&d); if(a<b)min=a; elsemin=b; if(c<min)min=c; if(d<min)min=d; printf("%d\n",min); return0;}2.編寫一個程序,從鍵盤輸入一個四位整數n,輸出它的各位數字之和。例如n=1308,則輸出12;n=3204,則輸出9。2.【參考代碼】#include<stdio.h>intmain(){ intnum,a,b,c,d; printf("請輸入一個四位整數:"); scanf("%d",&num); a=num/1000; b=num%1000/100; c=num%100/10; d=num%10; printf("各位數字之和為:%d\n",a+b+c+d); return0;}3.有一函數:3.【參考代碼】#include<stdio.h>intmain(){ intx; printf("請輸入x:"); scanf("%d",&x); printf("y的值為:"); if(x<0) printf("%d\n",x); elseif(x<50) printf("%d\n",3*x-2); elseif(x<100) printf("%d\n",4*x+1); else printf("%d\n",5*x); return0;}編寫一個程序,從鍵盤輸入x的值,輸出y的值。4.蘋果店有4個等級的蘋果,一級5.50元/kg、二級4.30元/kg、三級3.00元/kg、四級2.50元/kg。利用switch語句編寫一個程序,輸入蘋果的等級、數量以及顧客的付款數,顯示出蘋果的等級、數量、應付款數以及找給顧客的錢數。當輸入的蘋果的等級、數量以及顧客的付款數不合要求時,通知用戶“DataError!”,結束程序。4.【參考代碼】#include<stdio.h>intmain(){ intdj; floatzl,je,yfk; printf("請輸入等級(1~4):"); scanf("%d",&dj); if(dj>4||dj<1) { printf("無此等級的蘋果!\n"); return0; } printf("請輸入重量(公斤):"); scanf("%f",&zl); printf("\n"); switch(dj) {
第5章循環結構程序設計一、選擇題1.有以下程序段intk=10;while(k=0)k=k-1;則下面描述中正確的是_______。A.while循環執行10次 B.循環是無限循環C.循環體語句一句也不執行 D.循環體語句執行一次2.有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則_______。A.運行程序段輸出0 B.運行程序段輸出1C.程序段中的控制表達式是非法的 D.程序段執行無限次3.下面程序的功能是將從鍵盤輸入的一對數,由小到大排序輸出。當輸入一對相等數時結束循環,請選擇填空。#include<stdio.h>intmain(){ inta,b,t; scanf("%d%d",&a,&b); while(_______) { if(a>b) { t=a; a=b; b=t; } printf("%d,%d\n",a,b); scanf("%d%d",&a,&b); }return0;}A.!a=b B.a!=b C.a==b D.a=b4.下面程序的功能是在輸入的一批正整數中求出最大者,輸入0結束循環,請選擇填空。#include<stdio.h>intmain(){ inta,max=0; scanf("%d",&a); while(_______) { if(max<a) max=a; scanf("%d",&a); } printf("%d",max);return0;}A.a==0 B.a C.!a==1 D.!a5.C語言中while和do-while循環的主要區別是_______。A.do-while的循環體至少無條件執行一次B.while的循環控制條件比do-while的循環控制條件嚴格C.do-while允許從外部轉到循環體內D.do-while的循環體不能是復合語句6.下面程序的運行結果是_______。#include<stdio.h>intmain(){ inta=1,b=10; do { b-=a; a++; } while(b--<0); printf("a=%d,b=%d\n",a,b);return0;}A.a=3,b=11 B.a=2,b=8 C.a=1,b=-1 D.a=4,b=97.若i為整型變量,則以下循環執行次數是_______。for(i=2;i==0;)printf("%d",i--);A.無限次 B.0次 C.1次 D.2次8.下面程序的功能是計算1到10之間的奇數之和及偶數之和。請選擇填空。#include<stdio.h>intmain(){ inta,b,c,i; a=c=0; for(i=0;i<=10;i+=2) { a+=i; _______(1); c+=b; } printf("sumoftheeven=%d\n",a); printf("sumoftheodd=%d\n",_______(2));return0;}(1)A.b=i-- B.b=i+1 C.b=i++ D.b=i-1(2)A.c-10 B.c C.c-11 D.c-b9.有以下程序#include<stdio.h>intmain(){ inti; for(i=1;;i++); printf("%d\n",i);return0;}則下面描述中正確的是_______。A.輸出1B.輸出2C.輸出3D.10.for循環語句:for(表達式1;表達式2;表達式3)語句,以下敘述正確的是_______。A.for語句中的3個表達式一個都不能少B.for語句中的循環體至少要執行一次C.for語句中的循環體可以是一個復合語句D.for語句只能用于循環次數已經確定的情況11.關于break和continue,以下說法正確的是_______。A.break語句只應用在循環體中B.continue語句只應用在循環體中C.break是無條件跳轉語句,continue不是D.break和continue語句的跳轉范圍不夠明確,容易產生錯誤二、程序閱讀題1.下面程序的運行結果是_______。#include<stdio.h>#include<math.h>intmain(){ inta=1,b=2,c=2,t; while(a<b<c) { t=a; a=b; b=t; c--; } printf("%d,%d,%d\n",a,b,c);return0;}2.有以下程序#include<stdio.h>intmain(){ inta,b,m,n; m=n=1; scanf("%d%d",&a,&b); do { if(a>0) { m=2*n; b++; } else { n=m+n; a+=2; b++; } } while(a==b); printf("m=%dn=%d",m,n);return0;}若輸入輸入-10↙。程序的運行結果是_______。3.下面程序的運行結果是_______。#include<stdio.h>intmain(){ charc1,c2; inta; c1='1'; c2='A'; for(a=0;a<6;a++) { if(a%2) putchar(c1+a); else putchar(c2+a); }return0;}4.下面程序的運行結果是_______。#include<stdio.h>intmain(){ inti,m=0,n=0,k=0; for(i=9;i<=11;i++) { switch(i/10) { case0: m++; n++; break; case10: n++; break; default: k++; n++; } } printf("%d%d%d\n",m,n,k);return0;}5.下面程序的運行結果是_______。#include<stdio.h>intmain(){ inta=1,b; for(b=1;b<=10;b++) { if(a>=8) break; if(a%2==1) { a+=5; continue; } a=a-3; } printf("%d\n",b);return0;}6.下面程序的運行結果是_______。#include<stdio.h>intmain(){ intm=0,k=0,i,j; for(i=0;i<2;i++) { for(j=0;j<3;j++) k++; k=k-j; } m=i+j; printf("k=%d,m=%d\n",k,m);return0;}7.下面程序的運行結果是_______。#include<stdio.h>intmain(){ inti,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++; } x++; } printf("x=%d\n",x);return0;}8.有以下程序#include<stdio.h>#include<math.h>intmain(){ floatx,y,z; scanf("%f,%f",&x,&y); z=x/y; while(1) { if(fabs(z)>1.0)/*fabs()是計算絕對值的函數,包含在math.h文件中,此時計算|Z|*/ { x=y; y=z; z=x/y; } else break; } printf("%3.1f\n",y);return0;}若輸入數據3.6,2.4↙。程序的運行結果是_______。9.有以下程序#include<stdio.h>intmain(){ charc; c=getchar(); while(c!='\n') { switch(c-'2') { case0: case1:putchar(c+4); case2:putchar(c+4); break; case3:putchar(c+3); case4:putchar(c+2); break; } c=getchar(); } printf("\n");return0;}若輸入數據7654↙。程序的運行結果是_______。三、程序完善題1.下面程序的功能是:按規律將電文變成密碼,即將字母A變成字母E,a變成e,即變成其后的第4個字母,W變成A,X變成B,Y變成C,Z變成D;非字母字符保持原狀不變。如“boy”轉換為“fsc”。從鍵盤輸入一行字符,用換行符結束輸入,輸出其相應的密碼。請填空。#include<stdio.h>intmain(){ charch; printf("pleaseenter:\n"); ch=getchar(); while(ch!='\n') { if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) { ch=ch+4; if(_______) ch=_______; } printf("%c",ch); ch=getchar(); } printf("\n");return0;}2.下面程序的功能是:計算100至1000之間有多少個數其各位數字之和是5。請填空。#include<stdio.h>intmain(){ inti,s,k,count=0; for(i=100;i<=1000;i++) { s=0; k=i; while(_______) { s=s+k%10; k=_______; } if(s!=5) _______; else count++; } printf("%d",count);return0;}3.下面程序的功能是計算:s=1+12+123+1234+12345。請填空。#include<stdio.h>intmain(){ intt=0,s=0,i; for(i=1;i<=5;i++) { t=_______; _______; } printf("s=%d\n",s);return0;}4.下面程序的功能是:用公式求的近似值,直到發現某一項的絕對值小于為止(該項不累加)。請填空。#include<stdio.h>#include<math.h>intmain(){ intf=1; floatpi=0.0,n=1,t=1; while(_______) { pi=pi+t; n=n+2; _______; t=f/n; } pi=pi*4; printf("pi=%8.6f\n",pi);return0;}5.下面程序的功能是:計算100以內能被3整除,且個位數為4的所有整數。請填空。#include<stdio.h>intmain(){ inti,j; for(i=0;_______;i++){ j=i*10+4;if(_______) continue;printf("%d\n",j); }return0;}四、編程題1.編寫一個程序,輸出所有的水仙花數。若一個三位數等于其各位上數字的立方和,則稱這個三位數為水仙花數。例如,153是一個水仙花數,因為。2.編寫一個程序,輸入兩個整數,用輾轉相除法計算其最大公約數和最小公倍數。3.編寫一個程序,計算s=1!+2!+3!+…+n!。其中n由輸入決定。4.編寫一個程序,計算。其中m由輸出決定。
第6章數組一、選擇題1.在C語言中,引用數組元素時,其數組下標的數據類型不允許是_______。A.整型常量 B.整型表達式C.整型常量或整型表達式 D.任何類型的表達式2.以下對一維整型數組a的定義,正確的是_______。A.inta(10); B.intn=10,a[n];C.intn; D.inta[10];scanf("%d",&n);inta[n]; 3.若有定義:inta[10];,則對a數組元素的正確引用是_______。A.a[10] B.a[3.5] C.a(5) D.a[10-10]4.對定義inta[10]={6,7,8,9,10};的正確理解是_______。A.將5個初值依次賦給a[1]--a[5]B.將5個初值依次賦給a[0]--a[4]C.將5個初值依次賦給a[6]--a[10]D.因為數組長度與初值個數不相同,所以此語句不正確5.以下對二維數組a的正確說明是_______。A.inta[3][]; B.floata(3)(4);C.doublea[][4]; D.floata(3,4);6.若有定義:inta[3][4];,則對a數組元素的正確引用是_______。A.a[3][4] B.a[1,3] C.a[1+1][0] D.a(2)(1)7.以下對二維數組a初始化正確的語句是_______。A.inta[2][]={{0,1,2},{3,4,5}};B.inta[][3]={{0,1,2},{3,4,5}};C.inta[2][4]={{0,1,2},{3,4},{5}};D.inta[][3]={{0,1,2},{},{3,4}};8.對二維數組a進行如下初始化inta[][3]={0,1,2,3,4,5};則a[1][1]的值是_______。A.0B.3 C.4D.19.下面程序段的運行結果是_______。#include<stdio.h>intmain(){ inti,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%2d",x[i][2-i]);return0;}A.159B.147 C.357D.36910.以下對數組s的初始化,錯誤的是_______。A.chars[5]={"abc"}; B.chars[5]={'a','b','c'};C.chars[5]=""; D.chars[5]="abcde";11.對兩個數組a和b進行如下初始化,chara[]="ABCDEF";charb[]={'A','B','C','D','E','F'};則以下敘述正確的是_______。A.a和b數組完全相同 B.a與b長度相同C.a的長度比b短 D.a的長度比b長12.有兩個字符數組a,b,則以下正確的輸入語句是_______。A.gets(a,b); B.scanf("%s,%s",a,b);C.scanf("%s%s",&a,&b); D.gets("a"),gets("b");13.下面程序段的運行結果是_______。chara[7]="abcdef";charb[4]="ABC";strcpy(a,b);printf("%c\n",a[5]);A.□(□表示一個空格) B.\0 C.e D.f14.判斷字符串s1是否大于字符串s2,應當使用_______。A.if(s1>s2) B.if(strcmp(s1,s2))C.if(strcpy(s1,s2)) D.if(strcmp(s1,s2)>0)15.若有定義:chars[100]="hello";,下列函數調用語句中,不正確的是_______。A.strlen(strcpy(s,"well")); B.strcat(s,"!");C.puts(puts("hello")); D.!strcmp("",s);16.下面程序的運行結果是_______。#include<stdio.h>#include<string.h>intmain(){ chara[80]="AB",b[80]="LMNP"; inti=0; strcat(a,b); while(a[i++]!='\0') b[i]=a[i]; puts(b);return0;}A.LB B.ABLMNP C.AB D.LBLMNP二、程序閱讀題1.下面程序的運行結果是_______。#include<stdio.h>intmain(){ inti,k,a[10],p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*i]; for(i=0;i<3;i++) k=p[i]*2; printf("%d\n",k);return0;}2.下面程序的運行結果是_______。#include<stdio.h>intmain(){ inti,x[10]={2,3,0,3,0,2,3,2,1,3},y[4]={0}; for(i=0;i<10;i++) y[x[i]]++; printf("%d\n",y[3]);return0;}3.下面程序的運行結果是_______。#include<stdio.h>intmain(){ inti,j,a[3][3]={0}; for(i=0;i<3;i++) for(j=0;j<=i;j++) a[i][j]=i*j; printf("%d,%d\n",a[1][2],a[2][1]);return0;}4.下面程序的運行結果是_______。#include<stdio.h>intmain(){ inta[3][3]={0,1,2,3,4,5,6,7,8}; inti,s=0; for(i=0;i<3;i++) s+=a[i][1]; printf("%d\n",s);return0;}5.下面程序的運行結果是_______。#include<stdio.h>intmain(){ inti; chara[]="Time",b[]="Tom"; for(i=0;a[i]!='\0'&&b[i]!='\0';i++) if(a[i]==b[i]) if(a[i]>='a'&&a[i]<='z') printf("%c",a[i]-32); elseprintf("%c",a[i]+32); elseprintf("*");return0;}6.下面程序的運行結果是_______。#include<stdio.h>intmain(){ chara[]="morning",t; inti,j=0; for(i=1;i<7;i++) if(a[j]<a[i]) j=i; t=a[j]; a[j]=a[7]; a[7]=a[j]; puts(a);return0;}7.下面程序的運行結果是_______。#include<stdio.h>#include<string.h>intmain(){ chara[5][10]={"one","two","three","four","five"},str[10];inti,j;chart;for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(a[i][0]>a[j][0]) { t=a[i][0]; a[i][0]=a[j][0]; a[j][0]=t; } strcpy(str,a[1]); puts(str); return0;}三、程序完善題1.下面程序的功能是輸入5個整數,找出最大數和最小數所在的位置,并把二者對調,然后輸出調整后的5個數。請填空。#include<stdio.h>intmain(){ inta[5],max,min,i,j=0,k=0; for(i=0;i<5;i++) scanf("%d",&a[i]); min=a[0]; for(i=1;i<5;i++) if(a[i]<min) { min=a[i]; _______; } max=a[0]; for(i=1;i<5;i++) if(a[i]>max) { max=a[i]; _______; } _______; _______; printf("\nThepositionofminis:%3d\n",k); printf("\nThepositionofmaxis:%3d\n",j); for(i=0;i<5;i++) printf("%5d",a[i]);return0;}2.下面程序的功能是:從鍵盤上輸入10個學生的成績,統計計算出平均成績,并輸出低于平均分的學生成績。請填空。#include<stdio.h>intmain(){ intscore[10],n=0,i; floatsum=0.0,avg; printf("pleasrenter:\n"); for(i=0;i<10;i++) { scanf("%d",&score[i]); _______; } avg=sum/10; for(i=0;i<10;i++) if(_______) printf("%3d",score[i]);return0;}3.下面程序的功能是:將數組a[3][4]中的元素以3行4列的格式輸出,然后按行求和并且存儲到數組s中。請填空。#include<stdio.h>intmain(){ inta[3][4]={0,1,2,3,4,5,6,7,8,9,10,11}; ints[3]={0}; inti,j; for(i=0;i<3;i++) { for(j=0;j<4;j++) { printf("%4d",a[i][j]); _______; } _______; } for(i=0;i<3;i++) printf("%d\n",s[i]);return0;}4.下面程序的功能是:將字符串str的內容倒過來存放。請填空。#include<stdio.h>#include<string.h>intmain(){ charstr[]="abcdefg"; inti,j,k; _______; for(i=0;i<j;i++,j--) { k=str[i]; str[i]=str[j]; _______; } printf("%s\n",str);return0;}5.下面程序的功能是:從終端輸入字符,直到輸入#為止,統計輸入的字符中每個大寫字母的個數,存放在num數組中,其中num[0]表示字母A的個數,num[1]表示字母B的個數,以此類推。請填空。#include<stdio.h>intmain(){ intnum[26]={0},i; charc; while(_______) if(c>='A'&&c<='Z') _______; for(i=0;i<26;i++) if(num[i]) printf("%c:%d\n",i+'A',num[i]);return0;}四、編程題1.在鍵盤上輸入N個整數,編寫一個程序使該數組中的數按照從小到大的次序排列,用選擇排序算法實現。選擇排序:首先找出值最小的數,然后把這個數與第一個數交換,這樣值最小的數就放到了第一個位置;然后,再從剩下的數中找值最小的,把它和第二個數互換,使得第二小的數放在第二個位置上。以此類推,直到所有的值從小到大的順序排列為止。2.編寫一個程序,將輸入的數據插入到一個已按升序排好的數組中,要求插入后的數組仍然按升序排列。3.編寫一個程序,計算5×5的矩陣的主對角線之和。例如:其主對角線之和為60。4.編寫一個程序,將兩個字符串連接起來。不能使用strcat函數。5.編寫一個程序,計算字符串的實際長度。不能使用strlen函數。
第7章函數一、選擇題1.以下正確的說法是_______。A.用戶若需調用標準庫函數,調用前必須重新定義。B.用戶可以重新定義標準庫函數,若如此,該函數將失去原有含義。C.系統根本不允許用戶重新定義標準庫函數。D.用戶若需調用標準庫函數,調用前不必使用預編譯命令將該函數所在文件包括到用戶源文件中,由系統自動去調用。2.以下正確的函數形式是_______。A.doublefun(intx,inty){z=x+y;returnz;}B.fun(intx,y){intz;returnz;}C.fun(x,y){intx,y;doublez;z=x+y;returnz;}D.doublefun(intx,inty){doublez;z=x+y;returnz;}3.如果一個函數沒有返回值,那么該函數的類型是_______。A.intB.charC.floatD.void4.C語言允許函數值類型缺省定義,此時該函數值隱含的類型是_______。A.intB.charC.floatD.void5.以下說法不正確的是_______。A.實參可以是常量、變量或表達式B.形參可以是常量、變量或表達式C.形參可以為任意類型D.形參應與其對應的實參類型一致6.一個函數形參的作用域是_______。A.main函數B.形參所在函數體C.從定義處到文件尾D.整個程序7.以下關于形參和實參的說明中,錯誤的是_______。A.實參和形參占用不同的內存單元,即使同名也相互不影響B.實參在進行函數調用時,它們都必須有確定的值,以便把這些值傳給形參C.實參對形參的數據傳送是雙向的,可以把實參的值傳給形參,也可以把形參的值反向傳給實參D.形參變量只有在被調用時才分配內存單元8.C語言規定,簡單變量做實參時,它和對應形參之間的數據傳遞方式是_______。A.地址傳遞B.單向值傳遞C.由實參傳遞給形參,再由形參傳回給實參D.由用戶指定傳遞方式9.關于函數調用的形式,以下錯誤的描述是________。A.可以出現在執行語句中 B.可以出現在一個表達式中C.可以作為一個函數的實參 D.可以作為一個函數的形參10.C語言規定,函數返回值的類型是由________。A.return語句中的表達式類型所決定B.調用該函數時的主調函數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加盟產生費用合同樣本
- 制衣廠合同范例
- 加盟車輛合同標準文本
- 三角帶鼓式硫化機企業ESG實踐與創新戰略研究報告
- 不銹鋼網企業ESG實踐與創新戰略研究報告
- 純銀片企業縣域市場拓展與下沉戰略研究報告
- 農機減速機企業數字化轉型與智慧升級戰略研究報告
- 產品購銷合同標準文本2
- 合金鋼熱軋薄板企業ESG實踐與創新戰略研究報告
- 金融外包企業ESG實踐與創新戰略研究報告
- 檔案管理實務基礎試題及答案
- 2025空壓機節能升級合同能源管理(EMC)項目合同
- 上海楊浦區社區工作者考試真題2024
- 2024桂林臨桂區中小學教師招聘考試試題及答案
- 2025年入團相關考試題型及答案
- 2023-2024學年北京市西城區德勝中學七年級(下)期中數學試卷
- 質控工具在護理管理中的應用
- 一年級不等式填數練習題
- 2025年糧油保管員職業技能資格知識考試題(附答案)
- 皮膚病靶向治療專家共識(2025版)解讀課件
- DB37-T 3274.3-2023 日光溫室建造技術規范 第3部分:山東VI型
評論
0/150
提交評論