




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《C語言程序設計》復習題第一、二章單項選擇題1、下列符號中,不可以作為變量名的是_________。A、_varB、VAR10C、varxD、運算符&&代表。A、按位與B、邏輯與C、邏輯或D、按位取反下列字符串為標記符的是_____。A、_1_AB、5_studentC、longD、!DF下列屬于字符型常量的是。A、’AA’B、“B”C、‘\a’D、’\x93L’表達式18/4*sqrt(4.0)/8值的數據類型為____________.
A、
int
B、
double
C、
char
D、不擬定設有單精度變量f,其值為13.4執行語句“n=((int)f%3;”后,n的值是。A、1B、4C、4.333333D、4.6為表達關系x≥y≥z,對的的C語言表達式是。
A、(x>=y)&&(y>=z)
B、(x>=y)AND(y>=z)
C、(x>=y>=z)
D、(x>=z)&(y>=z)運算符||代表。A、按位或B、邏輯或C、按位異或D、按位取反9、若k為int型變量且賦值11,則k++表達式的值為。A、10B、11C、12D、10、下列四組選項中,均是合法轉義符的選項是。A、‘\”’‘\\’‘\n’B、‘\’‘\017’‘\”’C、‘\018’‘\f’‘xab’D、‘\\0’下列不對的的字符常量是。A、“C”B、‘\”’C、‘’D、‘K’用C語言編寫的源文獻通過編譯,若沒有產生編譯錯誤,則系統將。A、生成可執行文獻
B、生成目的文獻C、輸出運營結果
D、自動保存源文獻下列說法中錯誤的是。A、主函數可以分為兩個部分:主函數說明部分和主函數體B、主函數可以調用任何非主函數的其他函數C、任何非主函數可以調用其他任何非主函數D、程序可以從任何非主函數開始執行算術運算符、賦值運算符和關系運算符的運算優先級按從高到低依次為。A、算術運算、賦值運算、關系運算
B、算術運算、關系運算、賦值運算C、關系運算、賦值運算、算術運算
D、關系運算、算術運算、賦值運算已知字母A的ASCII碼為十進制數65,且c2為字符型,則執行語句c2=’A’+’6’-‘3’;后c2中的值是。A、C
B、D
C、68
D、不擬定的值
字符串"ABC"在內存占用的字節數是。A、3
B、4
C、6
D、8設a=1,b=2,c=3,d=4,則表達式:a<b?a:c<d?a:d的結果為。A、1
B、2
C、3
D、418、以下敘述對的的是。A、C語言程序是由過程和函數組成的B、C語言函數可以嵌套調用,例如:fun(fun(x))C、C語言函數不可以單獨編譯D、C語言中除了main函數,其他函數不可作為單獨文獻形式存在以下敘述不對的的是。A、在C程序中,逗號運算符的優先級最低B、在C程序中,MAX和max是兩個不同的變量C、若a和b類型相同,在計算了賦值表達式a=b后,b中的值不變D、當從鍵盤輸入數據時,對于整型變量只能輸入整型數值,對于實型變量只能輸入實型數值整型常量不能使用的形式是。A、二進制B、八進制C、十進制D、十六進制21、C語言源程序的擴展名為,連接后生成文獻的擴展名為。A、.CB、.EXEC、.OBJD、.COM二、填空題1、C語言程序是由組成,其中主函數的名字必須用。2、C語言程序總是從開始執行。3、一個函數包含和兩大部分,包含在中的內容稱為函數體。4、C語言程序的上機環節分為、、和四步。5、注釋部分以開始,以結束。6、在32位系統中,C語言的int型數據占個字節,float型數據占個字節,double型數據占字節,char型數據占個字節。7、將x定義為整型變量的語句是。8、將lg定義為長整型變量的語句是。9、將cg定義為字符型變量的語句是。10、與x3+3x3y+3xy2+y3相應的C語言表達式是___________________。11、表達式3.5+1/2的計算結果是。C語言的基本數據類型有______、______和_____。表達式x=x+1表達成增量表達式為。第三章單項選擇題putchar函數可以向終端輸出一個。A、整型變量表達式B、實型變量值C、字符串D、字符或字符型變量值2、printf函數中用到格式符%5s。假如字符串長度大于5,則輸出按方式;假如字符串長度小于5,則輸出按方式。A、從左起輸出該字符串,右補空格B、按原字符長從左向右所有輸出C、右對齊輸出該字符串,左補空格D、輸犯錯誤信息3、閱讀以下程序,當輸入數據的形式為:25,13,10<CR>(注:<CR>表達回車),則對的的輸出結果為。voidmain(){intx,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、48D根據下面的程序及數據的輸入和輸出形式,程序中輸入語句的對的形式應當為。voidmain(){charch1,ch2,ch3;輸入語句printf(“%c%%c”,ch1,ch2,ch3);}輸入形式:ABC輸出形式:ABCA、scanf(“%c%c%c”,&ch1,&ch2,&ch3);B、scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);C、scanf(“%c%c%c”,&ch1,&ch2,&ch3);D、scanf(“%c%c”,&ch1,&ch2,&ch3);5、已知ch是字符型變量,下面不對的的賦值語句是。A、ch=‘a’+’b’;B、ch=‘\0’;C、ch=‘7’+‘9’;D、ch=”aa”;6、以下關于結構化程序設計的敘述對的的是。A、一個結構化程序必須同時由順序、分支、循環三種結構組成B、結構化程序使用goto語句會很便捷C、在C語言中,程序的模塊化是運用函數實現的D、由三種基本結構構成的程序只能解決小規模的問題有以下程序#include<stdio.h>voidmain(){inta1,a2;charc1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,a1,c1,a2,c2);}若想通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,程序輸出結果是:12,a,34,b,則對的的輸入格式是。(以下_代表空格,<CR>代表回車)A、12a34b<CR>B、12_a_34_b<CR>C、12,a,34,b<CR>D、12_a34_b<CR>有以下程序,程序運營后的輸出結果是。#include<stdio.h>voidmain(){intx=011;printf("%d\n",++x);}A、2B、4C、10D、119、執行以下語句后,顯示結果為。x=19;printf(“%x”,x);A、13B、19C、23D、執行錯誤10、執行以下語句:顯示結果為。x=97;printf(“%c”,x);A、97B、aC、AD、執行錯誤二、程序填空題1、從鍵盤上輸入一個字符,假如是大寫字母,則將其轉換成小寫字母后輸出。#include<stdio.h>voidmain(){charch;scanf(“%c”,);ch=()?ch+32:ch;printf(“char=%c\n”,ch);}從鍵盤分別為變量x和y輸入整數,互換它們的值后輸出。#include<stdio.h>voidmain(){intx,y;;scanf(“%d%d”,&x,&y);z=x;;y=z;printf(“x=%d,y=%d”,x,y);}程序改錯題,下面程序片段也許只有一個錯,也也許有一個以上的錯。1、voidmain(){floata1=123.456;printf(“%d”,a1);}()改為:()2、printf(“請輸入三個數x1,x2,x3:”);scanf(“%f%f%f”,x1,x2,x3);()改為:()3、k=-8567;printf(“%6D\n”,k);()改為:()編程題。從鍵盤輸入一個四位數,把該整數顛倒過來輸出(例如1234變成4321)。寫一個程序,從鍵盤輸入兩個整數,然后輸出這兩個數的和、差、積、商。3、將“China”譯成密碼。加密規則是:用本來的字母后面的第4個字母代替本來的字母(提醒:設5個字符型變量,存放5個字符,經運算使各ASCII碼增4,再輸出)。第四章單項選擇題。邏輯運算符兩側運算對象的數據類型。A、只能是0和1B、只能是0或非0正數C、只能是整型或字符型數據D、可以是任何類型的數據判斷char型變量ch是否為大寫字母的對的表達式是。A、‘A’<=ch<=‘Z’B、(ch>=‘A’)&(ch<=‘Z’)C、(ch>=‘A’)&&(ch<=‘Z’)D、(‘A’<=ch)AND(‘Z’>=ch)若希望當A的值為奇數時,表達式的值為“真”,A的值為偶數時,表達式的值為“假”。則以下不能滿足規定的表達式是。A、A%2==1B、!(A%2==0)C、!(A%2)D、A%2設有:inta=1,b=2,c=3,d=4,m=2,n=2;執行(m=a>b)&&(n=c>d)后n的值為。A、1B、2C、0D5、以下程序的運營結果是。voidmain(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、2,0B、2,1C、6,0D、6、已知intx=10,y=20,z=30;以下語句執行后x,y,z的值是。if(x>y)z=x;x=y;y=z;A、x=10,y=20,z=30B、x=20,y=30,z=30C、x=20,y=30,z=107、以下程序的運營結果是。voidmain(){intm=5;if(m++>5)printf(“%d\n”,m);else;printf(“%d\n”,m--);}A、4B、5C、6D8、若運營時給變量x輸入12,則以下程序的運營結果是。voidmain(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A、0B、2C、3D、4if語句的基本形式是:if(表達式)語句,以下關于“表達式”值的敘述對的的是。A、必須是邏輯值B、必須是整數值C、必須是正數D、可以是任意合法的數值10、有以下程序#include<stdio.h>voidmain(){inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;printf(“%d\n”,b);}程序運營后的輸出結果是。A、0B、1C、11、有以下程序,程序運營后的輸出結果是。#include<stdio.h>voidmain(){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf(“%d\n”,c)}A、3B、5C、7D、12、有如下程序,
該程序的輸出結果是_______。voidmain()
{intx=1,a=0,b=0;
switch(x){
case0:b++;
case1:a++;
case2:a++;b++;
}
printf("a=%d,b=%d\n",a,b);}
A、a=2,b=1
B、a=1,b=1
C、a=1,b=0
D、a=2,b=213、若運營時給變量x輸入12,則以下程序的運營結果是_____。voidmain(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A、0B、10C、12D、2214、若變量已對的定義,要將a和b中的數進行互換,下面不對的的語句組是_____。A、a=a+b,b=a-b,a=a-b;B、t=a,a=b,b=t;C、a=t;t=b;b=a;D、t=b;b=a;a=t;15、下面程序的運營結果是。voidmain(){intx=4,y=5;if((x>y)&&(++x>0))printf(“%d”,x+y);printf(“%d”,x);}A、94B、4C、5D、10516、以下程序執行后的顯示結果為。{intn=3,m=6;if(n>4&&m++<10)m++;printf(“m=%d\n”,m);}A、6B、7C、8D、9填空題。1、執行if(x||!x)printf(”ABC”);elseprintf(”XYZ”);屏幕上顯示的是______________。2、執行下列語句后,顯示結果為。x=0;if(x=0)printf(“yes”);elseprintf(“no”);3、switch語句中,使用break語句,作用是。程序填空題1、下面程序判斷輸入一個整數是否能被3或7整除,若能整除輸出“YES”,若不能整除,輸出“NO”。voidmain(){intk;printf(“請輸入一個整數:”);scanf(“%d”,&k);ifprintf(“YES\n”);elseprintf(“NO\n”);}下列程序根據菜單選擇完畢相關操作。voidmain(){intx,y,n;printf(“請輸入第一個整數:”);scanf(“%d”,&x);printf(“請輸入第二個整數:”);scanf(“%d”,&y);printf(“請輸入你的選擇1-加法、2-減法、3-乘法、4-除法”);scanf(“%d”,);switch(n){case1:printf(“和為:%d\n”,x+y);break;case2:printf(“差為:%d\n”,x-y);break;case3:printf(“積為:%d\n”,x*y);break;case4:printf(“商為:%d\n”,x/y);break;:printf(“選擇有誤!\n”);}}四、程序改錯題1、輸入一個整數,判斷其奇偶性。#include<stdio.h>voidmain(){intx;printf(“請輸入一個整數:”);scanf(“%f”,x);if(x%2=0)printf(“是一個偶數!\n”);elseprintf(“是一個奇數!\n”);}()改為:()()改為:()輸入一個整數,判斷其是否能被3整除。#include<stdio.h>voidmain(){intx,y;printf(“請輸入一個整數:”);scanf(“%f”,x);y=x%3;switch(y){case0:printf(“能被3整除!\n”);case1,2:printf(“不能被3整除!\n”);}}()改為:()()改為:()()改為:()五、編程題1、編程:輸入整數x,計算并輸出下列分段函數f(x)的值。y=x(x<1)2x-1(1<=x<10)3x-11(x>=10)2、編程:輸入兩個整數,再輸入兩個數相加的和,由程序判斷輸入的和是否對的。3、編程:把百分制成績轉換成5級記分制,規定用switch語句。90分以上(涉及90):A80至90分(涉及80):B70至80分(涉及70):C60至70分(涉及60):D60分以下:E如:InputScore:8686的等級為B4、用switch語句編程,輸入2023年的任一個月,輸出這個月的天數。如:Inputmonthof2023:102023年10月有31天5、給出一個不多于5位的正整數,規定:(1)求出它是幾位數;(2)分別輸出每一位數字;(3)按逆序輸出各位數字,例如原數為321,應輸出123第五章一、單項選擇題1、有如下程序,該程序的輸出結果是_______。voidmain()
{intn=9;
while(n>6){n--;printf("%d",n);}
}
A、876
B、987
C、8765
D、98762、continue語句的對的的用法是。A、跳過該循環體中剩余的語句而強行開始下一次循環。B、在多重循環中,只能退出最靠近的那一層循環語句。C、跳出多重循環。D、無論在任何情況下,都中斷程序的執行,退出到系統下一層。3、有以下程序段,則下面的描述對的的是。intk=0;while(k=0)k=k-1;A、while循環執行10次B、循環是無限循環C、循環體語句一次也不執行D、循環體語句執行一次4、C語言中whi1e和do-while循環的重要區別是_____。A、do-while的循環體至少無條件執行一次B、while的循環控制條件比do-while的循環控制條件嚴格C、do-while允許從外部轉到循環體內D、do-while的循環體不能是復合語句5、有以下程序,則以下敘述對的的是_______。
intt=0;
while(t=1)
{...}A、循環控制表達式的值為0
B、循環控制表達式的值為1C、循環控制表達式不合法
D、以上說法都不對6、語句while(!E);中的表達式!E等價于________。A、E==0
B、E!=1
C、E!=0
D、E==1
7、下面程序段的運營結果是_,循環次數為。
int
n=0;
while(n++<=2);printf("%d",n);
A、2
B、3
C、4
D、有語法錯
8、下面程序的運營結果是。
#include<stdio.h>
viodmain()
{
int
num=0;
while(num<=2)
{
num++;
printf("%d\n",num);
}
}
A、1
B、1
C、1
D、1
2
2
2
3
3
4
9、以下程序段________。x=-1;
do{x=x*x;
}
while(!x);
A、是死循環
B、循環執行二次
C、循環執行一次
D、有語法錯誤
10、有如下程序段,則程序段______。
int
x=3;
do{printf("%d\n",x-=2);}
while(!(--x));
A、輸出的是1
B、輸出的是1和-2
C、輸出的是3和0
D、是死循環
11、下面程序的運營結果是____。
#include<stdio.h>
voidmain()
{
int
y=10;
do{y--;}
while(--y);
printf("%d\n",y--);
}A、-1
B、0
C、1
D、8
12、若i為整型變量,則以下循環執行次數是_____。
for(i=2;i==0;)printf("%d",i--);
A、無限次
B、0次
C、1次
D、2次
13、執行語句for(i=1;i++<4;
);后變量i的值是______。
A、3
B、4
C、5
D、不定
14、以下對的的描述是_______.
A、continue語句的作用是結束整個循環的執行
B、只能在循環體內和switch語句體內使用break語句
C、在循環體內使用break語句或continue語句的作用相同
D、從多層循環嵌套中退出時,只能使用goto語句
15、有以下程序,程序運營后的輸出結果是______。
voidmain()
{
char
b,c;
int
i;
b='a';
c='A';
for(i=0;i<6;i++)
{
if(i%2)
putchar(i+b);
else
putchar(i+c);
}
printf("\n");
}
A、ABCDEF
B、AbCdEf
C、aBcDeF
D、abcdef二、程序填空題:1、以下程序的功能是:從鍵盤上輸入若干個學生的成績,記錄并輸出最高成績和最低成績,當輸入負數時結束輸入。請填空。voidmain(){floatx,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(){if(x>amax)amax=x;if()amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}2、下列程序打印如下形式的圖形。**********voidmain(){for(inti=1;i<=4;i++){for(intj=1;;j++) printf();printf();}}3、下列程序求100之內的自然數中偶數之和。#include<stdio.h>voidmain(){inti=1,s;;while(i<100){if(i%2==0);;}printf(“s=%d\n”,s);}4、下面程序的功能是:輸出100以內(不包含100)能被3整除且個位數為6的所有整數,請填空。#include<stdio.h>voidmain(){
inti,j;for(i=1;;i++)if()printf("%d",i);
}5、下列程序打印如下形式的圖形**********voidmain(){for(inti=1;i<=4;i++){for(intj=1;;j++)?printf();printf();}}下面程序段是從鍵盤輸入的字符中記錄數字字符的個數,用換行符結束循環。
int
n=0,c;c=getchar();
while()
{
if()n++;c=getchar();
}
7、下面程序的功能是用"輾轉相除法"求兩個正整數的最大公約數。
#include
<stdio.h>
voidmain()
{int
r,m,n;
scanf("%d%d",&m,&n);
if(m<n){}
r=m%n;while(r){m=n;n=r;r=_
;}
printf("%d\n",n);
}
三、程序改錯題1、以下程序是輸入一個整數,分別將其逆向輸出。如-321的逆向是-123源程序(有錯誤的程序)#include<stdio.h>voidmain(){intn;scanf(“%d”,n);intm,y;y=0;if(n<0)m=n;elsem=-n;while(m==0){y=y*10+m/10;m=m%10;}if(n<0)y=–y;printf(“%d的逆向是%d\n”,n,y);}()改為:()()改為:()()改為:()()改為:()()改為:()2、輸入正整數的個數n,再輸入n個正整數,判斷它們是否為素數。素數就是只能被1和自身整除的正整數,1不是素數,2是素數。#include<stdio.h>#include<math.h>voidmain(){inti,j,k,m,n;printf(“輸入正整數的個數n:”);scanf(“%d”,&n);printf(“輸入%d個正整數\n”,n);for(j=0;j<n;j++){scanf(“%d”,m);n=sqrt(m);for(i=1;i<n;i++)if(m/i==0)break;if(i>n)printf(“%d是一個素數!\n”,m);elseprintf(“%d不是一個素數!\n”,m);}}()改為:()()改為:()()改為:()四、編程題1、編程:輸入一批非零整數,先輸出其中的偶數和及奇數和,然后輸出偶數和與奇數和的差。如:輸入一批整數,以零結束:101120330偶數和為:30奇數和為:44偶數和與奇數和的差為:-142、編程,輸入1個正實數eps,計算并輸出下式的值,直到最后一項的絕對值小于eps。如:Inputeps:0.00001S=0.8669783、編程,輸入1個實數x,計算并輸出下式的值,直到最后一項小于10-5。在math.h中定義的標準函數pow(x,y),可以求x的y次方。如:X=2S=3.7621954、編程,輸入一個整數,求它的各位數字之和及位數。例如123的各位數字之和是6,位數是3。如:輸入一個整數:-12345-12345有5位數,各位數字之和是15打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數自身。如153是一個水仙花數,由于153=13+53+33。6、編程,輸出101-115之間不能被3整除的數,每行輸出5個。規定使用continue語句。如:1011031041061071091101121131157、編程,找出200以內的所有完數,所謂完數是指這個數如恰好等于它的因子之和,如6是完數,由于6=1+2+3。8、有一個分數序列,2/1,3/2,5/3,8/5,13/8,21/13……求出這個數列的前20項之和。9、輸出以下圖案***************第六章一、單項選擇題1、在下面的一維數組定義中,_______有語法錯誤。A、inta[]={1,2,3};B、inta[10]={0};C、inta[];D、inta[5];2、調用函數strlen(“abcd\tef\ng”)的返回值是。A、4B、6C、7D、93、設有數組定義:chararray[]="China";,則數組array所占的空間為個字節。A、4B、5節C、6D、74、要使字符串變量str具有初值"ABCDEFGH",對的的定義語句是___。A、charstr[8]={'A','B','C','D','E','F','G','H'};B、charstr[8]="ABCDEFGH";C、charstr[]={'A','B','C','D','E','F','G','H'};D、charstr[]="ABCDEFGH";5、設有數組定義:chararray[]=”good”;,則數組所占的空間是________個字節。A、4
B、5
C、6
D、76、以下能對的進行字符串賦值的是。A、chars[5]={‘a’,’e’,’I’,’o’,’u’};B、chars[5];s=”good”;C、chars[5]=”abcd”;D、chars[5];s[]=”good”;7、下列語句中,是合法的數組定義。A、inta[]={“string”};B、inta[5]={0,1,2,3,4,5};C、chara={“string”};D、chara[]={0,1,2,3,4,5}8、有以下程序:voidmain(){charp[]={‘a’,’b’,’c’},q[]=”abc”;printf(“%d%d”,sizeof(p),sizeof(q));}程序運營后的輸出結果是()。A、33B、34C、43D、449、下列說法對的的是。A、在2023,2023,2023…2023這幾個連續的地址單元中可存放8個數據。B、在2023,2023,2023…2023這幾個連續的地址單元中可存放8個字符。C、在2023,2023,2023…2023這幾個連續的地址單元中可存放字符串”ABCDEFGH”。D、在2023,2023,2023…2023這幾個連續的地址單元中可存放8個整數。10、有定義:charch,s[30];inta,b;,下列輸入語句對的的是_______。A、scanf(“%d%f”,&a,&b); ??B、scanf(“%s%c”,&s,&ch);C、scanf(“%c%s”,&ch,s);? ?D、scanf(“%d%c”,a,ch);11、以下為一維整型數組a的對的定義是_________.。
A、int
a(10);
B、int
n=10,a[n];
C、int
n;
D、#define
SIZE
10
scanf("%d",&n);
int
a[SIZE];
int
a[n];
12、以下對二維數組a的對的定義是________。A、int
a[3][];
B、float
a(3,4);
C、double
a[1][4]
D、float
a(3)(4);
13、若二維數組a有m列,則計算任一元素a[i][j]在數組中位置的公式為。(假設a[0][0]位于數組的第一個位置上。)
A、i*m+j
B、j*m+i
C、i*m+j-1
D、i*m+j+1
14、若二維數組a有m列,則在a[i][j]前的元素個數為________。
A、j*m+i
B、i*m+j
C、i*m+j-1
D、i*m+j+1
15、有兩個字符數組a、b,則以下對的的輸入語句是_______。
A、gets(a,b);
B、scanf("%s%s",a,b);
C、scanf("%s%s",&a,&b);
D、gets("a"),gets("b");
16、下面程序段的運營結果是_________。
char
a[7]="abcdef";
char
b[4]="ABC";
strcpy(a,b);
printf("%c",a[5]);
A、空格
B、\0
C、e
D、f
17、判斷字符串s1是否大于字符串s2,應當使用_______。
A、if(s1>s2)
B、if(strcmp(s1,s2))
C、if(strcmp(s2,s1)>0)
D、if(strcmp(s1,s2)>0)
18、下面程序的功能是從鍵盤輸入一行字符,記錄其中有多少個單詞,單詞之間用空格分隔,請選擇填空。
#include
<stdio.h>
voidmain()
{
char
s[80],c1,c2='
';
int
i=0,num=0;gets(s);
while(s[i]!='\0')
{c1=s[i];
if(i==0)c2='
';
else
c2=s[i-1];
if(__)num++;
i++;
}
printf("There
are
%d
words.\n",num);
}
A、c1=='
'&&c2=='
'
B、c1!='
'&&c2=='
'
C、c1=='
'&&c2!='
'
D、c1!=''&&c2!='
'
19、下面程序的運營結果是_______。
#include
<stdio.h>
void
main(){char
str[]="SSSWLIA",c;
int
k;for(k=2;(c=str[k])!='\0';k++)
{switch(c)
{case
'I':++k;break;
case
'L':continue;
default:putchar(c);continue;
}
putchar('*');
}
}
A、SSW*
B、SW*
C、SW*A
D、SW
20、設char
str[100];int
i=5;,則引用數組元素的錯誤形式是。A、str[i
+
10]
B、(str
+
i)
C、(str
+
i
-
1)
D、
((str
+
+
)
+
i)二、填空題1、已知數組b定義為intb[]={9,6,3};,則數組b的最小下標是___,最大下標是___。2、已知數組e定義為inte[][4]={{1,2,3,4},{5,6,7,8}};,則e是一個行列的二維數組,總共有個元素,最大行下標是,最大列下標是。3、C語言中,數組名是一個常量,不能對它進行賦值運算。4、二維數組的元素在內存中按存放。5、C語言中,數組元素的下標下限為。6、設char
string[]
=“This_is_a_book!”;,則數組的長度應是________________。三、程序填空題1、輸入一個字符串,將其中所有的小寫字符變成“*”字符。#include<stdio.h>voidmain(){charstr[80];inti;printf(“請輸入一個字符串:”);scanf(“%s”,);for(i=0;str[i];i++)if()str[i]=’*’;printf(“變換后的字符串為%s\n”,);}2、下面程序以每行4個數據的形式輸出a數組,請填空。
#define
N
20
void
main()
{int
a[N],i;
for(i=0;i<N;i++)
scanf("%d",_
__);
for(i=0;i<N;i++)
{if
(___)
printf();printf("%3d",);
}
printf("\n");
}
3、下面程序可求出矩陣a的主對角線上的元素之和,請填空。
void
main()
{int
a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(___)sum=sum+_
_;
printf("sum=%d\n",sum);
}
四、程序改錯題1、輸入一個正整數n(0<n<=10)和一組(n個)有序整數,再輸入一個整數x,把x插入到這組數據中,使該組數據仍然有序。源程序(有錯誤的程序)#include<stdio.h>voidmain(){inti,j,n,x,a[n];printf(“輸入數據的個數n:”);scanf(“%d”,&n);printf(“輸入%d個整數:”,n);for(i=0;i<n;i++)scanf(“%d”,a[i]);printf(“輸入要插入的整數:”);scanf(“%d”,&x);for(i=0;i<n;i++){if(x>a[i])continue;j=n-1;while(j>=i){a[j]=a[j+1];j++;}a[i]=x;break;}if(i==n)a[n]=x;for(i=0;i<n;i++)printf(“%d”,a[i]);putchar(‘\n’);}()改為:()()改為:()()改為:()()改為:()()改為:()2、輸入一個以回車結束的字符串(少于80個字符),將它的內容顛倒過來再輸出。如”ABCD”顛倒為”DCBA”。#include<stdio.h>voidmain(){inti,k,tmp;charstr[];printf(“inputastring:”);i=0;while((str[i]=getchar())==’\n’)i++;str[i]=’\0’;k=i;for(i=0;i<k;i++){tmp=str[i];str[i]=str[k];str[k]=tmp;k++;}for(i=0;str[i]!=’\0’;i++)putchar(str[i]);}()改為:()()改為:()()改為:()()改為:()()改為:()五、編程題1、輸出以下楊輝三角形(要示輸出10行)111121133114641151010512、編程,輸入一個n行m列(n<=4,m<=4)的數組,先以n行m列的格式輸出該數組,然后找出該數組中值最小的元素,輸出該元素及其行下標和列下標。輸入輸出示例:輸入數組行和列數n、m:23輸入2行3列的數組元素:12-715-1891112.00-7.0015.00-18.009.0011.00a[1][0]=-18.003、編程,輸入一個以回車結束的字符串(少于80個字符),先輸出其中的小寫英文字母、空格和感慨號!,然后記錄這些字符的個數。4、編程,輸入一個字符ch和一個以回車符結束的字符串(少于80個字符),記錄字符串中與ch相同的字母個數。如:輸入一個字符:o輸入一個字符串:StudioClassroom在字符串中與o相同的字母有3個!5、編一程序,將兩個字符串連接起來,不要用strcat函數。6、編寫一個程序,將字符數組s2中的所有字符復制到字符數組s1中,不用strcpy函數。復制時,’\0’也要復制過去。’\0’后面的字符不復制。7、任意輸入20個整數,計算正數的個數和正數的和。第七章一、單項選擇題1、以下關于函數的敘述中對的的是。
A、每個函數都可以被其它函數調用(涉及main函數)
B、每個函數都可以被單獨編譯
C、每個函數都可以單獨運營
D、在一個函數內部可以定義另一個函數
2、設函數fun的定義形式為:
void
fun(char
ch,
float
x
)
{
……}
,則以下對函數fun的調用語句中,對的的是。
A、fun("abc",3.0);
B、t=fun('D',16.5);
C、fun('65',2.8);
D、fun(32,32);
3、有以下程序,程序運營后的輸出結果是。int
f1(int
x,int
y){return
x>y?x:y;}
int
f2(int
x,int
y){return
x>y?y:x;}
voidmain()
{
int
a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);
}
A、2,5,7
B、3,4,7
C、4,3,7
D、5,2,74、有以下程序,程序運營后的輸出結果是。#define
P
3
#define
F(int
x)
{
return
(P*x*x);}
voidmain()
{
printf("%d\n",F(3+5));
}
A、25
B、29
C、192
D、編譯犯錯
5、若程序中定義了以下函數
doublemyadd(double
a,double
b)
{
return
(a+b);
}
并將其放在調用語句之后,則在調用之前應當對該函數進行說明,以下選項中錯誤的說明是。A、
double
myadd(double
a,b)
;
B、
double
myadd(double,double);
C、
double
myadd(double
b,double
a);
D、
double
myadd(double
x,double
y);
6、有以下程序,程序的執行結果是。
char
fun(char
x
,
char
y)
{
if(x<y)
return
x;
return
y;
}
voidmain(){
int
a=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,b)
,fun(b,c)
));
}
A、7
B、8
C、9
D、函數調用犯錯7、
有以下程序,執行后輸出結果是。
void
f(int
v
,
int
w)
{
int
t;
t=v;v=w;w=t;
}
voidmain(){
int
x=1,y=3,z=2;
if(x>y)
f(x,y);
else
if(y>z)
f(y,z);
else
f(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
A、1,2,3
B、1,3,2
C、2,3,1
D、3,1,2
8、若已定義的函數有返回值,則以下關于該函數調用的敘述中錯誤的是。
A、
調用可以作為獨立的語句存在
B、調用可以作為一個函數的實參
C、調用可以出現在表達式中
D、調用可以作為一個函數的形參
9、有函數定義:void
fun(
int
n,
double
x)
{……}
,若以下選項中的變量都已對的定義并賦值,則對函數fun的對的調用語句是。
A、fun(int
y,double
m);
B、k=fun(10,12.5);
C、fun(x,n);
D、
void
fun(n,x);
10、有以下程序,程序運營后的輸出結果是。
fun(int
a,
int
b)
{
if(a>b)
return(a);
else
return(b);
}
voidmain()
{
int
x=3,
y=8,
z=6,
r;
r=fun
(fun(x,y),
2*z);
printf("%d\n",
r);
}
A、3
B、6
C、8
D、12
11、在一個C程序中,。
A、main函數必須出現在所有函數之前
B、main函數可以在任何地方出現
C、main函數必須出現在所有函數之后
D、main函數必須出現在固定位置
12、在函數內,定義變量時存儲類型符可省略的是。A、auto
B、
static
C、extern
D、register13、有如下程序,執行后輸出結果是
void
f(int
x,int
y){
int
t;
if(x<y){
t=x;
x=y;
y=t;
}
}
voidmain()
{
int
a=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
。
A、3,4,5
B、4,3,5
C、
5,3,4
D、5,4,3
14、C語言中,函數值類型的定義可以缺省,此時函數值的隱含類型是。
A、void
B、
int
C、float
D、double15、有以下程序,程序運營后的輸出結果是。
float
fun(int
x,int
y)
{
return(x+y);
}
voidmain()
{
int
a=2,b=5,c=8;
printf(“%3.0f\n”,fun((int)fun(a+c,b),a-c));
}
A、9
B、9.0
C、21
D、編譯犯錯16、若有以下程序,則以下敘述中不對的的是。
#include
<stdio.h>
void
f(int
n);
main()
{
void
f(int
n);
f(5);
}
void
f(int
n)
{
printf("%d\n",n);
}
A、若只在主函數中對函數f進行說明,則只能在主函數中對的調用函數f
B、若在主函數前對函數f進行說明,則在主函數和其后的其它函數中都可以對的調用函數f
C、對于以上程序,編譯時系統會提醒犯錯信息:提醒對f函數反復說明D、函數f無返回值,所以可用void將其類型定義為無值型
17、以下函數值的類型是
。fun
(
float
x
)
{
float
y;
y=
3*x-4;
return
y;
}
A、int
B、不擬定
C、void
D、float
18、以下所列的各函數首部中,對的的是。
A、void
play(var
:Integer,var
b:Integer)
B、void
play(int
a,b)
C、void
play(int
a,int
b)
D、Sub
play(a
as
integer,b
as
integer)
19、以下程序的輸出結果是。
fun(int
x,
int
y,
int
z)
{
z=x*x+y*y;
}
voidmain()
{
int
a=31;
fun(5,2,a);
printf(“%d”,a);
}
A、0
B、29
C、31
D、無定值
20、有如下函數調用語句
func(rec1,rec2+rec3,(rec4,rec5));
該函數調用語句中,具有的實參個數是。
A、3
B、4
C、5
D、有語法錯21、有如下程序,該程序的輸出的結果是。
int
func(int
a,int
b)
{
return(a+b);}
voidmain()
{
int
x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%\d\n”,r);
}
A、12
B、13
C、14
D、15
22、以下敘述中不對的的是。
A、在不同的函數中可以使用相同名字的變量
B、函數中的形式參數是局部變量
C、在一個函數內定義的變量只在本函數范圍內有效
D、在一個函數內的復合語句中定義的變量在本函數范圍內有效23、有以下程序,輸出結果是。
viod
fun
(int
a,int
b,int
c){
a=456;
b=567;
c=678;}
viodmain()
{
int
x=10,
y=20,z=30;
fun
(x,y,z);
printf("%d,%d,%d\n",z,y,x);
}
A、10,20,30
B、30,20,10
C、
456,567,678
D、
678,567,456
24、有以下程序,輸出結果是。
#include
"stdio.h"
int
abc(int
u,intv);
voidmain
()
{
int
a=24,b=16,c;
c=abc(a,b);
printf('%d\n",c);
}
int
abc(int
u,int
v)
{
int
w;
while(v)
{
w=u%v;
u=v;
v=w
}
return
u;
}
A、6
B、7
C、8
D、9
25、以下說法中對的的是。
A、C語言程序總是從第一個的函數開始執行
B、
在C語言程序中,要調用的函數必須在main()函數中定義
C、C語言程序總是從main()函數開始執行
D、C語言程序中的main()函數必須放在程序的開始部分
26、以下程序的輸出結果是。#include<stdio.h>
func(
int
a,
int
b)
{
int
c;
c=a+b;
return
c;
}
voidmain()
{
int
x=6,
y=7,
z=8,
r;
r=func((
x--,y++,x+y),z--);
printf("%d\n",r);
}
A、11
B、20
C、21
D、31
27、某程序中對myfun函數有此說明:voidmyfun();此說明的含義是。A、myfun函數無返回值B、myfun函數的返回值可以是任意的數據類型C、myfun函數的返回值是無值型的指針類型D、指針myfun指向一個函數,該函數無返回值28、一個函數的返回值類型是決定的。A、return語句中表達式類型B、定義函數時所指定的函數類型C、調用該函數的主調函數的類型D、在調用時臨時指定的類型29、以下對C語言函數的描述中,對的的是。A、C程序由一個或一個以上的函數組成B、函數既可以嵌套定義又可以遞歸調用C、函數必須有返回值,否則不能使用函數D、C程序中調用關系的所有函數必須放在同一個程序文獻中30、下列函數形式對的的是。A、doublefun(intx,inty)B、fun(intx,y)C、fun(x,y)D、doublefun(intx,inty){z=x+y;{intz;{intx,y{doublez;returnz;}returnz;}doublez=x+y;z=x+y;returnz;}returnz;}31、以下函數定義形式對的的是。A、doublefun(x,y);B、doublefun(intx;inty);C、doublefun(intx,inty);D、doublefun(intx,y);32、C語言程序中,當調用函數時。A、實參和形參各占一個獨立的存儲單元B、實參和形參共用一個存儲單元C、可以由用戶指定是否共用儲存單元D、由系統自動指定是否共用存儲單元33、用數據組名作為函數調用時的實參,事實上傳遞的是。A、數組所有元素B、數組第一元素的值C、數組的首地址D、數組元素的個數34、文獻中定義的全局變量的作用域為。A、本程序所有范圍B、本文獻所有范圍C、函數內所有范圍D、從定義該變量的位置開始到本文獻結束35、下面程序的對的運營結果是。voidfun(ints[],intn1,intn2){inti,j,t;i=n1;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,0},i;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(i=0;i<10;i++)printf(“%2d”,a[i]);printf(“\n”);}A、0987654321B、4321098765C、5678901234D、0987651234二、填空題1、在函數外定義的變量稱為變量。2、在程序編譯時是以為單位進行編譯的。3、函數的返回值是通過函數中的語句獲得的。4、若有以下程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版數學六年級下冊1.1負數練習卷含答案
- 宣化科技職業學院《人體解剖生理學》2023-2024學年第一學期期末試卷
- 天津生物工程職業技術學院《醫學氣功與方法》2023-2024學年第一學期期末試卷
- 三亞航空旅游職業學院《深基坑工程理論與實踐》2023-2024學年第一學期期末試卷
- 運城學院《報刊選讀(俄)(一)》2023-2024學年第二學期期末試卷
- 云南輕紡職業學院《中學體育教學專題案例分析》2023-2024學年第一學期期末試卷
- 西安航空學院《心理統計學》2023-2024學年第二學期期末試卷
- 四川省德陽市東湖博愛中學2024-2025學年初三4月質量檢查物理試題試卷含解析
- 人教PEP版英語五年級下冊教學課件Unit 5 Part B 第三課時
- 江蘇省蘇州市吳江汾湖中學2024-2025學年高三下學期期末考試數學試題理試題含解析
- 教學實驗常用低值易耗品目錄表(玻璃器皿類)
- 人教精通版四下Lesson 23課件
- 自動轉運小車結構及控制系統設計說明書
- 飲水設備巡查維護記錄表
- 洛陽十三朝古都課件
- RomaxDesigner 培訓教程(合)教學提綱
- 《中國傳統服飾——漢服》PPT課件
- 顧潔Storytime
- 小學信息技術認識《畫圖》
- 【精品】宇通客車涂裝車間實習報告
- 冷凍機的制冷效率與運行電費
評論
0/150
提交評論