廣西科技大學-2018-工科類-C語言補充練習題_第1頁
廣西科技大學-2018-工科類-C語言補充練習題_第2頁
廣西科技大學-2018-工科類-C語言補充練習題_第3頁
廣西科技大學-2018-工科類-C語言補充練習題_第4頁
廣西科技大學-2018-工科類-C語言補充練習題_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE141第2部分補充練習題第1、2章C語言概述及數(shù)據(jù)類型與表達式一、單項選擇題C語言源程序名的后綴是。A.exeB.cC.objD.cpp以下敘述中錯誤的是。A.計算機不能直接執(zhí)行用C語言編寫的源程序B.C程序經C編譯程序編譯后,生成后綴為.obj的文件是一個二進制文件C.后綴為.obj的文件,經連接程序生成后綴為.exe的文件是一個二進制文件D.后綴為.obj和.exe的二進制文件都可以直接運行可在C程序中作為用戶標識符的一組是。A.andB.DateC.HiD.case_2007y-m-dDr.TomBigl以下關于long、int和short類型數(shù)據(jù)占用內存大小的敘述中正確的是。A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定若變量均已正確定義并賦值,以下合法的C語言賦值語句是。A.x=y==5;B.x=n%2.5;C.x+n=i;D.x=5=4+1;以下正確的字符串常量是。A."\\\"B.'abc'C.OlympicGamesD""第一個字符是'\\',即字符\,而第二個字符'\'中的斜杠表示開始某個轉義字符,其后必須還有有效的和它能組成轉義字符的其它內容已知字符'A'的ASCⅡ代碼值是65,字符變量c1的值是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后輸出結果是。A.A,BB.A,68C.65,66D.65,68執(zhí)行scanf("a=%d,b=%d",&a,&b);語句,若要使變量a和b的值分別為3和4,則正確的輸入方法為.A.3,4B.a:3b:4C.a=3,b=4D.34設變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)。A.10□X□20□Y<回車>B.10□X20□Y<回車>C.10□X<回車>D.10X<回車>20□Y<回車>20Y<回車>轉換說明符%x的輸出形式是。A.十六進制數(shù)B.八進制數(shù)C.十進制數(shù)D.二進制數(shù)若有以下類型說明語句:charw;intx;floaty;doublez;則表達式w*x+z-y的結果為類型。A.floatB.doubleC.intD.char將int型變量n轉換成float型變量的方法是。A.floatnB.(float)nC.float(n)D.intn以下不能正確計算代數(shù)式值的C語言表達式是。A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)C語言中運算對象必須是整型的運算符是。A./B.%C.!D.*運行以下程序段時編譯出錯,其原因是。charc1='a',c2='123';printf("%c,%d\n",c1,c2);A.字符串要用"123"表示 B.'123'只能賦值給字符數(shù)組C.c2是字符變量,不能用%d格式輸出 D.c2是字符變量,只能賦以字符常量,不能賦以字符串常量設有定義:intk=0;以下選項的四個表達式中與其他三個表達式的值不相同的是。A.k++B.k+=1C.++kD.k+1已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97,以下不能將變量c中的大寫字母轉換成對應小寫字母的語句是。A.c=(c-'A')%26+'a'B.c=c+32C.c=c-'A'+'a'D.c=('A'+c)%26-'a'有以下程序:#include<stdio.h>voidmain()

{intx,y,z;

x=y=1;z=x++,y++,++y;

printf("%d,%d,%d\n",x,y,z);

}程序運行后的輸出結果是。A.2,3,3B.2,3,2C.2,3,1D.2,2,1指出下面輸入函數(shù)正確的是。A.scanf("a=b=%d",&a,&b);B.scanf("a=%d,b=%f",&m,&f);C.scanf("%3c",c);D.scanf("%5.2f",&f);有以下程序:#include<stdio.h>voidmain()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結果是。A.1267B.1256C.1278D.1245以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。#include<stdio.h>voidmain()/*Beginning*/{intr;floats;scanf("%d",&r);s=π*r*r;printf("s=%f\n",s);}程序在編譯時出錯,出錯的原因是。A.注釋語句書寫位置錯誤B.存放圓半徑的變量r不應該定義為整型C.輸出語句中格式描述符非法D.計算圓面積的賦值語句中使用了非法變量以下程序的輸出結果是。#include<stdio.h>voidmain(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}A.3B.5C.-1D.-2以下程序的輸出結果是。#include<stdio.h>voidmain(){intx=4,y=8;x+=y;y+=x;printf("%d%d\n",x,y);}A.1220B.48C.1212D.84下列程序的執(zhí)行結果是。#include<stdio.h>voidmain(){intx='c';printf("%c\n",'B'+(x-'b'+1));}A.DB.HC.ID.J下列程序的執(zhí)行結果是。#include<stdio.h>voidmain(){inta=5;floatx=2.14;a*=x*('D'-'A');printf("%f\n",(float)a);}A.32.100000B.32C.32.000000D.33.000000下列程序的執(zhí)行結果是。#include<stdio.h>voidmain(){intx=0,y=0,z=0;z=(x-=x-4),(x=y,y+4); printf("%d,%d,%d\n",x,y,z); }A.4,0,-8B.0,0,4C.-8,4,-8D.4,0,4數(shù)字字符0的ASCII值為48,以下程序運行后的輸出結果是。#include<stdio.h>voidmain(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-a);}A.3,2B.50,2C.2,2D.2,50有以下程序://(3+5,6+8)稱為逗號表達式,其求解過程先表達式1,后表達式2,整個表達式值是表達式2的值,如:(3+5,6+8)的值是14;#include<stdio.h>voidmain(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是。A.程序輸出大寫字母MB.程序輸出小寫字母mC.格式說明符不足,編譯出錯D.程序運行時產生出錯信息有以下程序:#include<stdio.h>voidmain(){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中將無確定值二、填空題一個C源程序是由若干個函數(shù)構成,其中必須有一個是函數(shù)。兩整數(shù)相除的結果為類型。函數(shù)體由開始,由符號結束。函數(shù)體的前面是部分,其后是部分。在C語言中整數(shù)可用進制數(shù)、進制數(shù)和進制數(shù)三種數(shù)制表示。在C語言程序中,整型數(shù)據(jù)占字節(jié),用關鍵字定義單精度實型變量,字符型數(shù)據(jù)占字節(jié)。執(zhí)行以下程序后的輸出結果是。#include<stdio.h>voidmain(){inta=10;a=(3*5,a+4);printf("a=%d\n",a);}設有定義:floatx=123.4567;則執(zhí)行以下語句后的輸出結果是。printf("%f\n",(int)(x*100+0.5)/100.0);以下程序運行后的輸出結果是。#include<stdio.h>voidmain(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf("%d,%f\n",n,x);}已知字母A的ASCII碼為65。以下程序運行后的輸出結果是。#include<stdio.h>voidmain(){chara,b;a='A'+'5'-'3';b=a+'6'-'2';printf("%d,%c\n",a,b);}有以下程序,當運行時輸入:12<回車>后,輸出結果是。#include<stdio.h>voidmain(){charch1,ch2;intn1,n2;ch1=getchar();ch2=getchar();n1=ch1-'0';n2=n1*10+(ch2-'0');printf("%d\n",n2);}執(zhí)行以下程序后的輸出結果是。#include<stdio.h>voidmain(){intx,y,z;x=y=2;z=3;y=z++-1;printf("%d\t%d\t",x,y);y=++x-1;printf("%d\t%d\n",x,y);y=z1;printf("%d\t%d\t",z,y);y=--z-1;printf("%d\t%d\n",z,y);}執(zhí)行以下程序后的輸出結果是。#include<stdio.h>voidmain(){intx;x=-3+4*5-6;printf("%d,\t",x);x=3+4%5-6;printf("%d,\t",x);x=(7+6)%5%2;printf("%d\n",x);}執(zhí)行以下程序后的輸出結果是。#include<stdio.h>voidmain(){inta,b=97;a=-3;printf("\ta=%d\tb=\'%c\'\t\"end\"\n",a,b);}以下程序輸入1.2345.6789<CR>,則程序運行結果為x=1.230000,y=45.678900,請?zhí)羁胀瓿沙绦?。注?lt;CR>表示回車。#include<stdio.h>voidmain(){doublex,y;scanf();printf("x=%lf,y=%lf\n",x,y);}以下程序的運行結果是。#include<stdio.h>voidmain(){inti=5,j=9;floatx=2.3,y=4.5;printf("%8.2f\n",i%(int)(x+y)*j/2/3+y);}第3章算法的基本控制結構一、單項選擇題在以下運算符中,優(yōu)先級最高的運算符是。A.<=B./C.!=D.&&以下敘述中錯誤的是。A.C語句必須以分號結束B.復合語句在語法上被看作一條語句C.空語句出現(xiàn)在任何位置都不會影響程序運行D.賦值表達式末尾加分號就構成賦值語句設有定義:intk=1,m=2;floatf=7.0;則以下選項中錯誤的表達式是。A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m當把以下四個表達式用作if語句的控制表達式時,有一個選項與其它三個選項含義不同這個選項是。A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1設有定義:inta=2,b=3,c=4;則以下選項中值為0的表達式是。A.(!a==1)&&(!b==0)B.(a<b)&&!c||1C.a&&bD.a||(b+b)&&(c-a)有以下程序段intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;執(zhí)行該程序段后,k的值是。A.3B.2C.1D.0設變量a、b、c、d和y都已正確定義并賦值。若有以下if語句if(a<b)if(c==d)y=0;elsey=1;該語句所表示的含義是。0a<b且c=dA.y=1a≥b0a<b且c=dB.y=1a≥b且c≠d0a<b且c=dC.y=1a<b且c≠d0a<b且c=dD.y=1c≠d若整型變量a、b、c、d中的值依次為:1、4、3、2。則條件表達式a<b?a:c<d?c:d的值為。A.1B.2C.3D.4以下程序運行后的輸出結果是。#include<stdio.h>voidmain(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d%d%d\n",i,j,k);}A.123B.234C.223D.233以下程序運行后的輸出結果是。#include<stdio.h>voidmain(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}A.6,1B.2,1C.6,0D.2,0以下程序運行后的輸出結果是。#include<stdio.h>voidmain(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}A.3B.4C.5D.6有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應該是。A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)設變量已正確定義,則以下能正確計算f=n!的程序段是。A.f=0;for(i=1;i<=n;i++)f*=i;B.f=1;for(i=1;i<n;i++)f*=i;C.f=1;for(i=n;i>1;i++)f*=i;D.f=1;for(i=n;i>=2;i--)f*=i;設a為整型變量,不能正確表達數(shù)學關系:10<a<15的C語言表達式是。A.10<a<15B.a==11||a==12||a==13||a==14C.a>10&&a<15D.!(a<=10)&&!(a>=15)邏輯運算符兩側運算對象的數(shù)據(jù)類型。A.只能是0或1B.只能是0或非0正數(shù)C.只能是整型或字符型數(shù)據(jù)D.可以是任何類型的數(shù)據(jù)當執(zhí)行以下程序段時,供選擇的答案是。a=-3;do{a+=a;}while(!a);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)提示有語法錯誤若定義intk;則以下循環(huán)語句的循環(huán)執(zhí)行次數(shù)是。for(k=2;k==0;)printf("%d",k--);A.無限B.0C.1D.2為了避免嵌套的條件語句if-else的二義性,C語言規(guī)定。A.else與縮排位置相同的if配對B.else與其之前最近的if配對C.else與其之后最近的if配對D.else與同一行上的if配對以下不正確的描述是。A.用while和do-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和do-while循環(huán)中的循環(huán)體語句均可以由空語句構成執(zhí)行以下程序后的輸出結果是。#include<stdio.h>voidmain(){inta,b,c;a=1;b=2;c=3;a=b--<=a||a+b!=c;//a=((b--)<=a)||((a+b)!=c)printf("%d,%d\n",a,b);}A.1,1B.1,2C.2,1D.2,2以下程序運行后的輸出結果是。#include<stdio.h>voidmain(){intk=5,n=0;while(k>0)//54321{switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);}A.0B.4C.6D.7若x和y代表整型數(shù),以下表達式中不能正確表示數(shù)學關系|x-y|<10的是。A.abs(x-y)<10B.x-y>-10&&x-y<10C.!(x-y)<-10||!(y-x)>10D.(x-y)*(x-y)<100下列條件語句中,功能與其他語句不同的是。A.if(a)printf("%d\n",x);elseprintf("%d\n",y);B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);以下程序的輸出結果是。#include<stdio.h>voidmain(){inti=0,s=0;for(;;){if(i==3||i==5)continue;//回到表達式3死機if(i==6)break;i++;s+=i;}printf("%d\n",s);}A.10B.13C.21D.程序是死循環(huán)以下程序的輸出結果是。#include<stdio.h>voidmain(){inta=3,b=4,c=5,d=2;if(a>b)if(b>c)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",d);}A.2B.3C.43D.44在以下給出的表達式中,與while(E)中的(E)不等價的表達式是。A.(!E==0)B.(E>0‖E<0)C.(E==0)D.(E!=0)要求通過while循環(huán)不斷讀入字符,當讀入字母N時結束循環(huán)。若變量已正確定義,以下正確的程序段是。A.while((ch=getchar())!='N')printf("%c",ch);B.while(ch=getchar()!='N')printf("%c",ch);C.while(ch=getchar()=='N')printf("%c",ch);D.while((ch=getchar())=='N')printf("%c",ch);有以下程序:#include<stdio.h>voidmain(){intx=6;while(x--);printf("x=%d\n",x);}運行程序的輸出結果是。A.x=0B.x=-1C.x=1D.while構成無限循環(huán)有以下程序:#include<stdio.h>voidmain(){inta=0,b=0,c=0,d=0;

if(a=1)b=1;c=2;

elsed=3;

printf("%d,%d,%d,%d\n",a,b,c,d);}運行程序的輸出結果是。A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯二、填空題表示條件:10<z<100或z<0的C語言表達式是。若已知i=10,j=20,則表達式!i<j的值為。當x=6,y=5,z=4時,表達式a=x>y>z的值是。閱讀下列程序:#include<stdio.h>voidmain(){charc;while((c=getchar())!='\n'){if(c>='A'&&c<='Z')c=c+32;elseif(c>='a'&&c<='z')c=c-32;printf("%c",c);}printf("\n");}執(zhí)行時,如果從鍵盤上輸入:DEFabc<回車>,則運行結果是。輸入:742<回車>,以下程序的運行結果是。#include<stdio.h>voidmain(){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");}執(zhí)行以下程序后的輸出結果是。#include<stdio.h>voidmain(){inti,j,x=0;

for(i=0;i<2;i++)

{x++;

for(j=0;j<3;j++)

if(j%2)break;

x++;

}

printf("x=%d\n",x);

}以下程序的功能是:輸出a、b、c三個變量中的最小值,請?zhí)羁铡?include<stdio.h>voidmain(){inta,b,c,t1,t2;scanf("%d%d%d",&a,&b,&c);t1=a<b?;t2=c<t1?;printf("%d\n",t2);}有以下程序段,且變量已正確定義和賦值:for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf("s=%f\n\n",s);請?zhí)羁?使下面程序段的功能與之完全相同。s=1.0;k=1;while(){s=s+1.0/(k*(k+1));;}printf("s=%f\n\n",s);以下程序的輸出結果是。#include<stdio.h>voidmain(){inti;for(i=1;i<6;i++){if(i%2)printf("#");elsecontinue;printf("*");}printf("\n");}以下程序的功能是:一球從100米高度垂直自由落下,每次落地后反彈回上次高度的一半,再落下……。以下程序計算該球第10次反彈高度(米),以及球第10次落地時經過的路程(米)。#include<stdio.h>voidmain(){floatsn=100.0,hn=;intn;for(n=2;n<=10;n++){;/*sn為球第n次落地時共經過的路程(米),n>=2*/hn/=2;/*hn為球第n次反彈的高度(米),n>=2*/}printf("球第10次落地時共經過%f米\n",sn);printf("球第10次反彈的高度為%f米\n",hn);}求s=1+12+123+1234+12345。程序如下,請?zhí)羁铡?include<stdio.h>voidmain(){intt=0,i,s=0;for(i=1;i<=5;i++){t=i+;s=;}printf("s=%d",s);}以下程序的功能是輸出如下形式的方陣,請?zhí)羁铡?3141516910111256781234#include<stdio.h>voidmain(){inti,j,x;for(j=4;;j--){for(i=1;i<=4;i++){x=(j-1)*4+;printf("%4d",x);}printf("\n");}}以下程序用于判斷a、b、c能否構成三角形,若能,輸出YES,否則輸出NO。當給a、b、c輸入三角形三條邊長時,確定a、b、c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?include<stdio.h>voidmain(){floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if()printf("YES\n");/*a、b、c能構成三角形*/elseprintf("NO\n");/*a、b、c不能構成三角形*/

}以下程序的功能是:輸出100以內(不含100)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?include<stdio.h>voidmain(){inti,j;

for(i=0;;i++){j=i*10+6;

if()continue;

printf("%d\n",j);

}

}第4章函數(shù)一、單項選擇題以下敘述中正確的是。A.C語言程序將從源程序中第一個函數(shù)開始執(zhí)行B.可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序將從此開始執(zhí)行C.C語言規(guī)定必須用main作為主函數(shù)名,程序將從此開始執(zhí)行,在此結束D.main可作為用戶標識符,用以命名任意一個函數(shù)作為主函數(shù)以下敘述中錯誤的是。A.C程序必須由一個或一個以上的函數(shù)組成B.函數(shù)調用可以作為一個獨立的語句存在C.若函數(shù)有返回值,必須通過return語句返回D.函數(shù)形參的值也可以傳回給對應的實參以下敘述中正確的是。A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方B.花括號"{"和"}"只能作為函數(shù)體的定界符C.構成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名D.分號是C語句之間的分隔符,不是語句的一部分若已定義的函數(shù)有返回值,則以下關于該函數(shù)調用的敘述中錯誤的是。A.函數(shù)調用可以作為獨立的語句存在B.函數(shù)調用可以作為一個函數(shù)的實參C.函數(shù)調用可以出現(xiàn)在表達式中D.函數(shù)調用可以作為一個函數(shù)的形參設函數(shù)fun的定義形式為voidfun(charch,floatx){…}則以下對函數(shù)fun的調用語句中,正確的是。A.fun("abc",3.0);B.t=fun('D',16.5);C.fun('65',2.8);D.fun(32,32);調用函數(shù)的實參與被調用的形參應該有如下關系。A.只要求實參和形參個數(shù)相等B.只要求實參和形參順序相同C.只要求實參和形參數(shù)據(jù)類型相同D.上述三點均需具備以下關于說法正確的是。A.實參和與其對應的形參各自占用獨立的存儲單元B.實參與其對應的形參共占用一個存儲單元C.實參和與其對應的形參同名時才共同占用存儲單元D.形參是虛擬的,不占用存儲單元在函數(shù)調用過程中,如果函數(shù)funA調用了函數(shù)funB,函數(shù)funB又調用了函數(shù)funA,則。A.稱為函數(shù)的直接遞歸調用B.稱為函數(shù)的間接遞歸調用C.稱為函數(shù)的循環(huán)調用D.C語言中不允許這樣的遞歸調用有以下程序:#include<stdio.h>fun(intx,inty){return(x+y);}voidmain(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}程序運行后的輸出結果是。A.6 B.7 C.8 D.有以下程序:#include<stdio.h>intfun1(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;

a=fun1(x);b=fun1(y);return(int)(a+b);}voidmain(){doublew;w=fun2(1.1,2.0);}

程序執(zhí)行后變量w中的值是。AB.5C.5.000000D.0.0有以下程序:#include<stdio.h>intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}voidmain(){inta=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.4,3,7 B.3,4,7 C.5,2,7 D.有以下程序:#include<stdio.h>intsum(intn){intp=1,s=0,i;for(i=1;i<=n;i++)s+=(p*=i);returns;}voidmain(){printf("sum(5)=%d\n",sum(5));}程序運行后的輸出結果是。A.sum(5)=151 B.sum(5)=152C.sum(5)=153 D.sum(5)=155有以下程序:#include<stdio.h>fun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}voidmain(){printf("%d\n",fun(7));}程序運行后的輸出結果是。A.7 B.3 C.2 D.有以下程序:

#include<stdio.h>intfun(intn)

{if(n==1)return1;

elsereturn(n+fun(n-1));}voidmain()

{intx;

scanf("%d",&x);x=fun(x);printf("%d\n",x);

}執(zhí)行程序時,給變量x輸入10,程序的輸出結果是。A.55 B.54 C.65 D.以下程序的輸出結果是。#include<stdio.h>voidf(intv,intw){intt;t=v;v=w;w=t;}voidmain(){intx=1,y=3,z=2;if(x>y)f(x,y);elseif(y>z)f(y,z);elsef(x,z);printf("%d,%d,%d\n",x,y,z);}A.1,2,3B.3,1,2C.1,3,2D.2,3,1有以下程序:#include<stdio.h>fun(inta,intb){if(a>b)return(a);elsereturn(b);}voidmain(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}運行程序的輸出結果是。A.3B.6C.8D.12下列程序的輸出結果是。

#include<stdio.h>fun(inta,intb,intc)

{

c=a*b;

}

voidmain(){

intc;

fun(2,3,c);

printf("%d\n",c);

}A.0B.6C.1D.無法確定C語言規(guī)定:在一個源程序中,main函數(shù)的位置_____。A.必須在最開始B.可以任意C.必須在系統(tǒng)調用的庫函數(shù)的后面D.必須在最后二、填空題若自定義函數(shù)不要求返回一個值,則應在函數(shù)說明時加一個類型說明符。執(zhí)行以下程序后的輸出結果是。#include<stdio.h>intf(intx,inty)

{return(y-x)*x;}

voidmain()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

printf("%d\n",d);

}下面的函數(shù)是一個求非負整數(shù)階乘的遞歸函數(shù)。請?zhí)羁?。fac(intn){if(n==0);elsereturn;}以下程序是用來從10到99數(shù)字中挑出能被3整除且至少有一位是5的兩位數(shù),并打印出所有這樣的數(shù)及其個數(shù)。請?zhí)羁铡?include<stdio.h>voidmain(){intk,m=0;for(k=10;k<=99;k++){m+=sub(k);}printf("個數(shù)為:%d\n",m);}sub(intk){inta1,a2,n=0;a2=;a1=k/10;if(k%3==0&&()){printf("%d",k);return1;}elsereturn0;}以下函數(shù)abc的功能是。調用該函數(shù)后,從鍵盤輸入4,則整個函數(shù)的運行結果為。voidabc(){intchoice;do{printf("***主菜單***\n");printf("1.輸入2.排序\n");printf("3.輸出4.退出\n");printf("請選擇1-4");scanf("%d",&choice);switch(choice){case1:sr();break;/*sr()為自定義輸入函數(shù)*/case2:sort();break;/*sort()為自定義排序函數(shù)*/case3:sc();break;/*sc()為自定義輸出函數(shù)*/case4:exit(0);}}while(1);}以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,否則返回0。請?zhí)羁?。intisprime(inta){inti;

for(i=2;i<=a/2;i++)

if(a%i==0);

;}以下函數(shù)utoh將十進制正整數(shù)n轉換成無符號十六進制并輸出,請?zhí)羁铡toh(unsignedn){inth;charch;h=n%16;ch=h<=9?h+'0':h+'A'-10;if(n/16>0)utoh();printf("%c",ch);}以下程序中,函數(shù)fun的功能是計算x-2x+6,主函數(shù)中將調用函數(shù)計算:y1=(x+8)-2(x+8)+6y2=sin(x)-2sin(x)+6請?zhí)羁铡?include<stdio.h>#include<math.h>doublefun(doublex){return(x*x-2*x+6);}voidmain(){doublex,y1,y2;printf("Enterx:");scanf("%lf",&x);y1=fun();y2=fun();printf("y1=%lf,y2=%lf\n",y1,y2);}求以下分數(shù)序列的前n項之和。請?zhí)羁铡?include<stdio.h>fun(intn){inta=2,b=1,c,k;doubles=0.0;for(k=1;k<=n;k++){s+=(double)a/b;c=a;a=a+b;b=c;};}voidmain(){intn=5;printf("%lf\n",fun(n));}以下程序通過函數(shù)sunFun求,其中,由F函數(shù)實現(xiàn)。請?zhí)羁铡?include<stdio.h>voidmain(){printf("Thesum=%d\n",SunFun(10));}SunFun(intn){intx,s=0;for(x=0;x<=n;x++)s+=F(________);returns;}F(intx){return;}第5章數(shù)組一、單項選擇題語句charstr[20];說明str是一個字符串,最多能表示。A.20個字符B.19個字符C.18個字符D.21個字符以下關于字符串的敘述中正確的是。A.C語言中有字符串類型的常量和變量B.兩個字符串中的字符個數(shù)相同時才能進行字符串大小的比較C.可以用關系運算符對字符串的大小進行比較D.空串一定比空格打頭的字符串小有以下程序:#include<stdio.h>#defineMAX10voidmain(){inti,sum,a[]={1,2,3,4,5,6,7,8,9,10};sum=1;for(i=0;i<MAX;i++)sum-=a[i];printf("SUM=%d",sum);}程序運行結果是。A.SUM=55B.SUM=-54C.SUM=-55有以下程序:#include<stdio.h>voidmain(){chara[40],b[40];inti,j;printf("Enterthestring:");scanf("%s",a);i=j=0;while(a[i]!='\0'){if(!(a[i]>='0'&&a[i]<='9')){b[j]=a[i];j++;}++i;}b[j]='\0';printf("%s",b);}程序運行后輸出的結果是。A.把鍵盤輸入的字符串顯示在屏幕上B.把鍵盤輸入的字符串中的數(shù)字字符刪掉,然后顯示該字符串C.把鍵盤輸入的字符串中的字符0和9刪掉,然后顯示該字符串D.只保留由鍵盤輸入的字符串中的字母數(shù)字,然后顯示該字符串有以下程序:#include<stdio.h>voidmain(){chara[80];inti;printf("Enterthestring:");scanf("%s",a);i=0;while(a[i]!='\0'){if(a[i]>='A'&&a[i]<='Z')a[i]=a[i]-'A'+'a';i++;}printf("%s",a);}程序運行后輸出的結果是。A.把鍵盤輸入的字符串中的大寫字母變換成小寫字母,然后顯示變換后的字符串B.把鍵盤輸入的字符串中的數(shù)字字符刪除掉,然后顯示該字符串C.把鍵盤輸入的字符串中的小寫字母變換成大寫字母,然后顯示變換后的字符串D.把鍵盤輸入的字符串原封不動地顯示在屏幕上當用戶要求輸入的字符串中含有空格時,應使用的輸入函數(shù)是。A.scanf()B.getchar()C.gets()D.getc()以下能對二維數(shù)組a進行正確初始化的語句是。A.inta[2][]={{1,0,1},{5,2,3}};B.inta[][3]={{1,2,3},{4,5,6}};C.inta[2][4]={{1,2,3},{4,5},{6}};D.inta[][3]={{1,0,0},{},{1,1}};下面程序段的運行結果是。chars[6];s="abcd";printf("\"%s\"\n",s);A.abcdB."abcd"C.\"abcd\"D.編譯出錯下列程序運行后輸出的結果為。#include<stdio.h>voidmain(){inta[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf("%2d",a[i][j]);printf("\n");}}A.11111B.00001C.1011111000100100001010111110010000100001001111101000000100101011111100000000110001以下程序中函數(shù)sort的功能是的對a所指數(shù)組中的數(shù)據(jù)進行由大到小的排序。#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}voidmain(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運行后的輸出結果是。A.1,2,3,4,5,6,7,8,9,10, B.10,9,8,7,6,5,4,3,2,1, C.1,2,3,8,7,6,5,4,9,10, D.1,2,10,9,8,7,6,5,4,3,有以下程序:#include<stdio.h>#include<string.h>voidmain(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n",i,j);}程序運行后的輸出結果是。A.9,9 B.8,9 C.1,8 D.9,8以下程序中函數(shù)reverse的功能是將a所指數(shù)組中的內容進行逆置。#include<stdio.h>voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}voidmain(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運行后的輸出結果是。A.22 B.10 C.34 D.30有以下程序:#include<stdio.h>voidmain(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序運行后的輸出結果是。A.11 B.19 C.13 D.若有定義語句:inta[3][6];,按在內存中的存放順序,a數(shù)組的第10個元素是。A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]有以下程序:voidswap1(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2(intc0,intc1){intt; t=c0;c0=c1;c1=t;}#include<stdio.h>voidmain(){inta[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結果是。A.5353B.5335C.3535有以下程序:#include<stdio.h>intf(intb[][4]){inti,j,s=0;for(j=0;j<4;j++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}voidmain(){inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};printf("%d\n",f(a));}執(zhí)行后的輸出結果是。A.12B.11C.18D定義如下變量和數(shù)組:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};則下面語句的輸出結果是。for(i=0;i<3;i++)printf("%d,",x[i][2-i]);A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,有以下程序:#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}voidmain(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}其輸出結果是。A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.9,2,7,4,5,6,3,8,1,10,D.1,10,3,8,5,6,7,4,9,2,有以下程序段:intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為。A.55566.0B.566.0C.7777.0D.有以下程序:#include<stdio.h>voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}voidmain(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結果是。A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,2,3,4,5,有以下程序:#include<stdio.h>voidmain(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}程序運行后的輸出結果是______。A.42B.45C.56有以下程序:#include<stdio.h>#include<string.h>voidmain(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運行后的輸出結果是______。A.22B.76C.72以下能正確定義一維數(shù)組的選項是______。A.inta[5]={0,1,2,3,4,5};B.chara[]={0,1,2,3,4,5};C.chara={'A','B','C'};D.inta[5]="0123";已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是______。A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.上述說法都不對以下敘述中錯誤的是______。A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變C.當程序執(zhí)行中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)有以下程序:#include<stdio.h>#defineN20fun(inta[],intn,intm){inti;for(i=m;i>=n;i--)a[i+1]=a[i];}voidmain(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,8);for(i=0;i<5;i++)printf("%d",a[i]);}程序運行后的輸出結果是______。A.10234B.12344C.12334不能把字符串:Hello!賦給數(shù)組b的語句是。charb[10]={'H','e','l','l','o','!','\0'};charb[10];b="Hello!";charb[10];strcpy(b,"Hello!");charb[10]="Hello!";二、填空題設有n個人圍坐一圈并按順時針方向1~n編號,從第s個人開始進行1到m的報數(shù),報數(shù)報到第m個人,此人出圈。再從他的下一個人重新開始1到m的報數(shù),如此下去,直到所有的人都出圈為止?,F(xiàn)要求按此圈排序,每10人為一組,給出這n個人的排序表。程序中解此問題的方法是:①將1~n的序號存入一維數(shù)組p;②若第i個人報數(shù)后出圈,則將p[i]置于數(shù)組的倒數(shù)第i個位置,而原i+1至倒數(shù)i個元素依次向前移動了一個位置;③重復第②步,直至圈中只剩下p[1]為止。#include<stdio.h>#defineN10#defineS1voidmain(){inti,j,m,s1,w,p[N+1];m=4;s1=S;for(i=1;i<=N;i++)for(i=N;i>=2;i--){s1=if(s1==0)w=p[s1];for(j=s1;;j++)p[j]=p[j+1];p[i]=w;}printf("Sequencecomingoutfromthequeueis:\n");for(i=N;i>=1;i--){printf("%4d",p[i]);if(%10==0)printf("\n");}}fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大的數(shù),再求這N個最大值中的最小的那個數(shù)作為函數(shù)值返回。請?zhí)羁铡?defineN100intfun(int(*a)[N]){introw,col,max,min;for(row=0;row<N;row++){for(max=a[row][0],col=1;col<N;col++)if()max=a[row][col];if(row==0)min=max;elseif()min=max;} returnmin;}下面rotate函數(shù)的功能是:將n行n列的矩陣A轉置,請?zhí)羁铡?defineN4voidrotate(inta[][N]){inti,j,t;for(i=0;i<N;i++)for(j=0;;j++){t=a[i][j];;a[j][i]=t;}}下面程序的運行結果是。#include<stdio.h>intf(inta[],intn){if(n>1)returna[0]+f(&a[1],n-1);elsereturna[0];}voidmain(){intaa[3]={1,2,3},s;s=f(&aa[0],3);printf("%d\n",s);}以下程序運行后的輸出結果是。#include<stdio.h>#include<string.h>voidmain(){charch[]="abc",x[3][4];inti;for(i=0;i<3;i++)strcpy(x[i],ch);for(i=0;i<3;i++)printf("%s",&x[i][i]);printf("\n");}以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。請?zhí)羁铡?include<stdio.h>voidf(intx[],intn){intp0,p1,i,j,t,m;i=j=x[0];p0=p1=0;for(m=0;m<n;m++){if(x[m]>i){i=x[m];p0=m;}elseif(x[m]<j){j=x[m];p1=m;}}t=x[p0];x[p0]=x[n-1];x[n-1]=t;t=x[p1];x[p1]=;=t;}voidmain(){inta[10],u;for(u=0;u<10;u++)scanf("%d",&a[u]);f(a,10);for(u=0;u<10;u++)printf("%3d",a[u]);printf("\n");}執(zhí)行以下程序的輸出結果是________。#include<stdio.h>voidmain(){inti,n[4]={1};for(i=1;i<=3;i++){n[i]=n[i-1]*2+1;printf("%d",n[i]);}}以下程序的功能是:統(tǒng)計從終端輸入字符中每個大寫字母的個數(shù),用#號作為輸入結束標志。請?zhí)羁铡?include<stdio.h>#include<ctype.h>voidmain(){intnum[26],i;charc;for(i=0;i<26;i++)num[i]=0;while(!='#')/*統(tǒng)計從終端輸入的大寫字母個數(shù)*/if(isupper(c))num[c-65];for(i=0;i<26;i++)/*輸出大寫字母和該字母的個數(shù)*/if(num[i])printf("%c;%d\n",i,num[i]);}以下程序的功能是:對從鍵盤上輸入的兩個字符串進行比較,然后輸出兩個字符串中第一個不相同字符的ASCII碼之差。例如:輸入的兩個字符串分別為abcdefg和abceef,則輸出為-1。請?zhí)羁铡?include<stdio.h>voidmain(){charstr1[100],str2[100],c;inti,s;printf("\nInputstring1:\n");gets(str1);printf("\nInputstring2:\n");gets(str2);i=;while((str1[i]==str2[i])&&(str1[i]!=))i++;s=;printf("%d\n",s);}以下程序的功能是:從鍵盤上輸入若干個學生的成績,統(tǒng)計計算出平均成績,并輸出低于平均分的學生成績,用輸入負數(shù)結束輸入。請?zhí)羁铡?include<stdio.h>voidmain(){floatx[1000],sum=0.0,ave,a;intn=0,i;printf("Entermark:\n");scanf("%f",&a);while(a>=0.0&&n<1000){sum+=;x[n]=;n++;scanf("%f",&a);}ave=;printf("Output:\n");printf("ave=%f\n",ave);for(i=0;i<n;i++)if()printf("%f\n",x[i]);}有以下程序:#include<stdio.h>#defineN8voidmain(){inti,j,min,temp,a[N];printf("請輸入八個數(shù):\n");for(i=0;i<N;i+

溫馨提示

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

評論

0/150

提交評論