本文目錄一覽:
- 1、有關C語言試題
- 2、C語言編程題:編寫一個程序,求出200到300之間的數,且滿足條件:它們三個數字之積為42,三個數字之和為12
- 3、c語言編程:(300,800)範圍內同時滿足以下兩個條件的十進制數。1,其個位數字與十位數字之和除
- 4、C語言編程題 1:求100-300之間所有數個數,及偶數的個數。 2:求70以內能被8整除的。 3:求10個數中最大數。
- 5、求c語言試題及答案!急啊!
有關C語言試題
你看這行嗎? C語言試題(10)選擇題(50×2=100)1.以下敘述正確的是( )。A)在C程序中,main函數必須位於程序的最前面B)C程序的每行中只能寫一條語句C)C語言本身沒有輸入輸出語句D)在對一個C程序進行編譯的過程中,可發現注釋中的拼寫錯誤2.C語言規定:在一個源程序中,main函數的位置( )。A)必須在最開始 B)必須在系統調用的庫函數的後面C)可以任意 D)必須在最後3.在C語言中(以16位PC機為例),5種基本數據類型的存儲空間長度的排列順序為( )。A)charint 1ong int=floatdoubleB)char=int1ong int=floatdoubleC)char int 1ong int=float=doubleD)char=int =1ong int=floatdouble4.假設所有變量均為整型,則表達式(a=2,b=5,b++,a+b)的值是( )。 A)7 B)8 C)6 D)25.下面四個選項中,均是C語言關鍵字的選項是( )。A)auto B)switch C)signed D)if enum typedef union struct include continue scanf type6.C語言中的標識符只能由字母、數字和下劃線三種字符組成,且第一個字符( )。 A)必須為字母 B)必須為下劃線 C)必須為字母或下劃線 D)可以是字母,數字和下劃線中任一種字符7.下面四個選項中,均是不合法的轉義字符的選項是( )。 A)’\” B)’\1011′ C)’\011′ D)’\abc’ ‘\\’ ‘\’ ‘\f’ ‘\101’8.若有代數式3ae/bc,則不正確的C語言表達式是( )。 A) a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*39.已知各變量的類型說明如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2;則以下符合C語言語法的表達式是( )。A) a+=a-=(b= 4)*(a=3) B)a=a*3=2C) x%(-3) D)y=f1oat(i)10.以下正確的敘述是( )。A)在C程序中,每行中只能寫一條語句B)若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數C)在C程序中,無論是整數還是實數,都能被準確無誤地表示D)在C程序中,%是只能用於整數運算的運算符11.已知字母A的ASCII碼為十進制數65,且c2為字符型,則執行語句c2=’A’+’6’-‘3′;後,c2中的值為( )。A)D B)68 C)不確定的值 D)C12.若以下變量均是整型,且num=sum=7;則執行表達式sum=num++,sum++,++num後sum的值為( )。 A) 7 B) 8 C) 9 D) 1013.若有說明語句:char c=’\72’則變量c( )。A)包含1個字符 B)包含2個字符C)包含3個字符 D)說明不合法,c的值不確定14.下面四個選項中,均是非法常量的選項是( )。A)’as’ B)’\\’ c)-0xl8 D)0xabc -0fff ‘\01’ 01177 ‘\0’ ‘\0xa’ 12,456 0xf “a”15.設變量n為f1oat類型,m為int類型,則以下能實現將n中的數值保留小數點後兩位,第三位進行四舍五人運算的表達式是( )。A) n=(n*100+0.5)/100.0 B)m=n*100+0.5 ,n= m/100.0C) n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.016.設C語言中,一個int型數據在內存中佔2個字節,則unsigned int型數據的取值範圍為( )。A) 0~255 B) 0~32767 C) 0~65535 D) 0~214748364717.若有以下定義,則能使值為3的表達式是( )。int k= 7,x =12;A) x%=(k%= 5) B) x%=(k一k%5)C) x%=k- k%5 D) (x%=k)一(k%=5)18.putchar函數可以向終端輸出一個( )。A)整型變量表達式值B)實型變量值C)字符串D)字符或字符型變量值19.printf函數中用到格式符%5s ,其中數字5表示輸出的字符串佔用5列。如果字符串長度小於5,則輸出按方式( )。A)從左起輸出該字串,右補空格B)按原字符長從左向右全部輸出C)右對齊輸出該字串,左補空格D)輸出錯誤信息20.若x ,y均定義為int型,z定義為double型,以下不合法的scanf函數調用語句是( )。A) scanf(” %d%lx,%le”,x,y,z);B) scanf(“%2d * %d%lf”x,y,z ); C) scanf(“%x %* d%o”,x,y);D) scanf(“%x%o%6.2f”,x,y,z); 21.已有定義int x; f1oat y;且執行scanf(“%3d%f”,x,y);語句,若從第一列開始輸入數據12345 678(回車),則x 的值為( )。A)12345 B)123 C) 45 D) 345 22.已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A,B,當從第一列開始輸入數據時,正確的數據輸入方式是( )。int a1,a2; char c1,c2;scanf(“%d%d”,a1,a2);scanf(“%c%c”,c1,c2); A) 1020ABCR B)10 20CRABCR C)10 20 ABCR D)10 20ABCR23.以下能正確地定義整型變量a,b和c 並為其賦初值5的語句是( )。 A)int a=b= c= 5; B) int a,b, c= 5; C)a= 5,b=5,c=5; D) a= b= c=5;24.已知ch是字符型變量,下面正確的賦值語句是( )。A) ch= ‘123’; B) ch= ‘\xff’; C) ch= ‘\08′; D) ch=”\”;25.設x 、y均為f1oat型變量,則以下不合法的賦值語句是( )。A)++x; B)y=(x%2)/10; C) x*=y+8; D)x=y=0;26.邏輯運算符兩側運算對象的數據類型( )。 A)只能是0或1 B)只能是0或非0正數 C)只能是整型或字符型數據 D)可以是任何類型的數據27.下列運算符中優先級最高的是( )。 A) B)十 C) D)!=28.設x,y 和z是int型變量,且x = 3,y= 4,z= 5,則下面表達式中值為0的是( )。 A)’y”y’ B)x =y C) x||y+zy-z D) !(xy)!z||1)29.判斷char型變量c1是否為小寫字母 正確表達式為( )。 A)’ a’ =cl=’ z’ B) (cl = a)(cl=z) C)(‘ a’ =cl)||(‘ z’ = cl) D)(c1=’a’)(cl=’z’)30.執行以下語句後a的值為( )。int a,b,c;a= b= c= 1;++a||++b++c A)錯誤 B) 0 C) 2 D) 131.以下符合c語言語法的賦值表達式是( )。A)d=9+e+f=d+9 B)J=9+e,f=d+9C)d=9+e,e++,d+9 D)d=9+e++=d+732.若有代數式3ae/bc,則不正確的c語言表達式是( )。A)a/b/c*e*3 B)3*a*e/b/cC)3*a*e/b*c D)a*e/c/b*e33.已知各變量的類型說明如下int k,a,b; unsigned long w=5double x=1.422;則以下不符合c語言語法的表達式是( )。A)x%(-3) B)w+=-2C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)x(a=3)34.已知字母A的ASCII碼為+進制數65,且c2為字符型,則執行語句c2=’A’+’6′-‘3′;後,c2中的值為( )。A)D B) 68C)不確定的值 D)C35.若有以下定義:int a,b ;float x;,則正確的賦值語句是( )。A)a=1,b=2, B)b++;C)a=b=5 D)b=int(x)36.c語言中的標識符只能由字母、數字和下劃線三種字符組成,且第一個字符( )。A)必須為字母B)必須為下劃線C)必須為字母或下劃線D)可以是字母、數字和下劃線中任-種字符37.在c語言中,char型數據在內存中的存儲形式是( )。A)補碼 B)反碼 C)原碼 D)ASCII碼38.若有說明語句:char c=’72’;則變量c( )。A)包含1個字符 B)2個字符C)包含3個字符 D)說明不合法,c的值不確定39.己知各變量的類型說明如下:int i=8,k,a,b;unsigned long w=55double x=1.42,y=5.2則以下符合c語言語法的表達式是( )。A)+=a-=(b=4)*(a=3) B)a=a*3=2C)x%(-3) D)y=float(i)40.若以下變量均是整型,且num=sum=7;則執行表達式sum=num++, sum++,++num後sum的值為( )。A)7 B)8 C)9 D)1041.若有定義:int a=7;folat x=2.5,y=4.7;則表達式x+a%3*(int)(x+y)%2/4的值是( )。A)2.500000 B)2.750000 C)3.500000 D)0.00000042.設有說明:char w;int x,float y;double z; 則表達式w*x+z-y值的數據類型為( )。A)float B)char C) int D)double43.設變量n為float類型,m為int 類型,則以下能實現將n中的數值保留小數點後兩位,第三位進行四捨五入運算的表達式是( )。A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.044.以下關於運算符優先順序的描述中正確的是( )。A)關係運算符<算術運算符<賦值運算符<邏輯與運算符B)邏輯與運算符<關係運算符<算術運算符<賦值運算符C)賦值運算符<遲輯與運算符<關係運算符<算術運算符D)算術運算符<關係運算符<賦值運算符<邏輯與運算符45.判斷char型變量ch是否為大寫字母的正確表達式是( )。A) ‘A’=ch=’Z’ B)(ch=’A’)(ch=’Z’)C)(ch=’A’)(ch+’Z’) D)(‘A’=ch)AND(‘Z’=ch46.下列運算符中優先級最高的是( )。A) B)+ C) D)!=47.執行以下語句後a的值為( )。int a=5,b=6,w=1,x=2,y=3,z=4;(a=wx)(b=yz);A)5 B)0 C)2 D)148.已知 x=43,ch=’A’,y=0;則表達式(x=ych’B’!y)的值是( )。A)0 B)語法錯 C)1 D) “假”49.設x、y和s是int型變量,且x=3,y=4,z=5,則下面表達式中值為0的是( )。A)’x”y’B)x=yC)x||y+zy-zD)!((xy)!z50.以下不正確的if語句形式是( )。A) if(xyx!=y)B)if(x==y)x+=y;C)if(x!=y) scanf(“%d”,x) else scanf(“%d”,y);D) if(xy){x++;y++;}
C語言編程題:編寫一個程序,求出200到300之間的數,且滿足條件:它們三個數字之積為42,三個數字之和為12
main()
{
int i;
int a,b,c;
printf(“符合條件的數為:”);
for(i=200;i=300;i++)
{
a=i%10;
b=(i/10)%10;
c=i/100;
if(a*b*c==42a+b+c==12)
printf(“%d\t”,i);
}
}
c語言編程:(300,800)範圍內同時滿足以下兩個條件的十進制數。1,其個位數字與十位數字之和除
C語言編程:
#include
int isprime(int n)
{ int i;
for(i=2; i*i=n; i++)
if(n%i==0)return 0;
return 1;
}
int main()
{ int i;
for(i=799; i300; i-=2)
if(i/100==(i/10%10+i%10)%10isprime(i))
break;
printf(“%d\n”,i);
return 0;
}
C語言編程題 1:求100-300之間所有數個數,及偶數的個數。 2:求70以內能被8整除的。 3:求10個數中最大數。
第二問
#includestdio.h
void main()
{
int i;
for(i=1;i70;i++)
if((i%8)==0)
printf(“%d “,i);
}
第三
#includestdio.h
void main()
{
int n,i,a[10],max;
for(i=0;i10;i++)
scanf(“%d”,a[i]);
max=a[0];
for(i=1;i10;i++)
if(a[i]max)
max=a[i];
printf(“%d\n”,max);
}
第四
#includestdio.h
void main()
{
int i,sum=0,s=0;
for(i=1;i=100;i++)
{
sum=sum+i;
if(i%2==0)
s=s+i;
}
printf(“所有數和喂%d\n偶數和為%d\n”,sum,s);
}
這些都基礎的多看書吧
求c語言試題及答案!急啊!
c語言考試題(一)
一、 單項選擇題(每題2分,共20分)
1、以下選項中屬於C語言的數據類型是( )
A.複數型 B.邏輯型 C.集合型 D.雙精度型
2、一個C程序的執行是從( )
A.main()函數開始,直到main()函數結束 B.第一個函數開始,直到最後一個函數結束
C.第一個語句開始,直到最後一個語句結束 D.main()函數開始,直到最後一個函數結束
3、設有語句int a=3;則執行語句a+=a-=a*a;後,變量a的值是( )
A.3 B.0C.-12 D.9
4、若有 char c[5]={‘c’,’d’,’\0′,’e’,’\0′};則執行語句printf(“%s”,c);結果是( )。
A.cd\0e B.’c”d’ C.cd D.cd e
5、已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;則下列表達式不是4的是 ( )。
A.*(*p+3) B.*p+3 C.*(*(p+0)+3) D.a[0][3]
6、以下有宏替換不正確的敘述( ).
A.宏替換不佔用運行時間 B.宏名無類型
C.宏替換隻是字符串替換 D.宏名必須用大寫字母表示
7、執行char str[10]=”Ch\nina”; strlen(str)的值是( )
A.5 B.6 C.7 D.9
8、下面程序的輸出結果是:( )
#define POWER(x) (x*x)
main()
{int i=4; printf(“%d”,POWER(i-2)); }
A. -9 B. -7 C. 5 D. -6
9、在定義int a[3][4][2];後,第10個元素是( )
A.a[2][1][2] B.a[1][0][1] C.a[2][0][1] D.a[2][2][1]
10、下面程序的輸出結果是:( )
typedef struct
{long x[2];brshort y[4];brchar z[8];br}MYTYPE;
MYTYPE a;
main()
{ printf(“%d\n”,sizeof(a));}
A. 2 B. 8 C. 14 D. 24
二、 填空題(每空1分,共11分)
1、字符串”A”在內存中佔用的字節數為 。
2、C語言中的標識符只能由字母、下劃線和 組成。
3、若有定義語句“ int a=25,b=14,c=19;”,以下語句的執行結果是
if(a++=25b–=2c++) printf(“***a=%d,b=%d,c=%d\n”,a,b,c);
else printf(“###a=%d,b=%d,c=%d\n”,a,b,c);
4、有如下定義a[]=”B\172\\\’a%%”;則執行語句printf(“%d”,strlen(a));的結果為 。
5、若有定義:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i; for(i=0;i4;i++) p[i]=a[i*3];則*(*(p+1)+2)的值為 ,*p[2]的值為 。若數組的首地址為2000,則p[1]指向的地址為 。
6、設a=2,b=3,x=3.5,y=2.5,則表達式(float)(a+b)/2+(int)x%(int)y 的結果是 。
7、設x、y都是int型變量,初值都為1,則執行表達式:–xy++後,y的值為 。
8、語句for(i=1;i==10;i++)continue;循環的次數是 。
9、以下程序輸出 。
main()
{enum em {em1=3,em2=1,em3};
char *aa[]={“AA”,”BB”,”CC”,”DD”}; printf(“%s%s%s\n”,aa[em1],aa[em2],aa[em3]);
}
三、 寫程序結果(每題5分,共35分)
1、#include
main()
{int x,y,z;brx=1,y=2,z=3; x+=y+=z;brprintf(“1:%d\n”,z+=xy?x++:y++);brx=0x02ff;y=0xff00;brprintf(“2:%d\n”,(xy)4|0x005f);brx=y=z=-1; ++x||++y++z;brprintf(“3:%d,%d,%d\n”,x,y,z);br}
2、#define f(x) x*x
main()
{int a=6,b=2,c;brc=f(a+b)/f(b);brprintf(“%d\n”,c);br}
3、fun(int k)
{ printf(“%d”,k);
if(k0)
fun(k-1);
}
main( )
{ int w=5; fun(w); printf(“\n”); }
4、#include
main()
{int x=1,y=0;brswitch(x)br{ case 1:brswitch(y)br{ case 0:printf(“first\n”);break;brcase 1:printf(“second\n”);break;br}
case 2:printf(“third\n”);
}
}
5、#include
main()
{ int k=4;
func(k); func(k);
}
func(int a)
{ static int m=0;
m+=a;
printf(“%d”,m);
}
6、struct st
{ int x;
int *y;
}*p;
int s[]={30,20};
struct st a[]={1,s[0],2,s[1]};
main()
{ p=a; printf(“%d,”,p-x);
printf(“%d\n”,++(*(++p)-y));
}
7、假定在當前盤目錄下有2個文本文件,其名稱和內容如下:
文件名: a1.txt a2.txt
內容: ABCDEF# abcdef#
#include “stdio.h”
main()
{FILE *fp;brvoid fc();brif((fp=fopen(“a1.txt”,”r”))==NULL)br{printf(“Can not open file!\n”); exit(1);}
else{fc(fp);fclose(fp);}
if((fp=fopen(“a2.txt”,”r”))==NULL)
{printf(“Can not open file!\n”); exit(1);}
else{fc(fp);fclose(fp);}
}
void fc(fp1)
FILE *fp1;
{char c;brwhile((c=fgetc(fp1))!=’#’)putchar(c);br}
四、 程序填空(每空2分,共14分)
1、下面程序求矩陣a的主對角線元素之和,請填空。
main()
{ int a[3][3]={2,4,6,8,10,12,14,16,18};
int sum=0,i,j;
for(i=0;i3; ① )
for(j=0; ② ;j++)
if(i= =j) sum=sum+ ③ ;
printf(“sum=%d\n”,sum);
}
2、下列函數coy把字符數組S2中的全部字符複製到字符數組S1中, 複製時’\0’也要複製過去,’\0’後面的字符不用。
coy(char s1[],char s2[])
{ int i;
for(i=0;s2[i]!= ① ;i++)
s1[i]=s2[i];
② ;
}
3、下面程序的功能是將字符串a中的下標為奇數的元素由小到大排序,其他元素不變,請填空。
main()
{ char a[]=”students”,t; int i,j;
for(i=1;i7;i+=2)
for(j=i+2;j8; ① )
if( ② )
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
}
c語言考試題(二)
一. 填空題(每題2分,共20分)
1. C語言基本數據類型有:_______________________________;
構造類型有:_____________________________________。 P.13
2. C語言源程序注注釋符號是:________________________________,
為表明層次結構,C語言源程序通常採用_____________________格式編寫。P.4
3. 源程序TEST.C經編譯產生的目標文件是:________________________;
經連接處理後,產生的可執行文件是:__________________________。
4. strlen(“1234 \ 0xy)的值為:_____________________________;
sizeof(float)的值為:____________________________
5. 二維數組a[10] [50]最後一行的首地址為:_________________________;
最後一個元素的首地址為:____________________________________。
6. C標準庫函數中,數學函數的原型在:________________頭文件中,自定義頭文件D :\ MYC \ MY . H應如何包含到源程序文件中:_________________________。P.130
7. 已知函數定義為:int stat(int a,float *p)
{……………}
則此函數的兩個參數類型分別是_______________ 、 _____________________。
8. 設int x,y,z=4;
x=y=++z;
x=(yz)?x+2;x++;則x的值是:_________;
設int a=0,b=0,c=0;c=++a | | b++; ,則a、b、c值分別是:_____________。
9. 與if (x=0) 等價的寫法是if ( ! x );
判斷兩個(float)變量x,z是否相等一般:if ( fabc(x-z)1e-6 )。
10.已知賦值語句zhang.year=1985;可判斷zhang是_______________類型的變量;
定義文件指針的C語句是:_________________________________。
二. 單項選擇題 (每題1分,共10分)
1. 組成C程序的基本單位是____________________________。
A.函數 B.標識符 C.表達式 D.語句
2. 設int類型的數據長度為2字節,則該類型數據的取值範圍是__________________。
A.0至65536 B.0至65535
C.-32767至32768 D.-32768至32767
3. 在C語言中,邏輯值“真”是用_____________________表示的。
A.預定義為真值的宏 B.非零數
C.正數 D.非零整數
4. C語言對於嵌套if語句規定else總是與_____________________匹配。
A.與最外層的if B.與之前最近的if
C.與之前最近的不帶else的if D.與最近的{ }之前的if
5. 數組定義char a[10]={`a`,`b`,`c`}:包括了幾個元素____________________。
A.3 B.9 C.4 D.10
6. 數組名作為實參傳給被調用的函數時,形參獲得的是_____________________。
A.該數組第一個元素的值 B.該數組所有元素的值
C.該數組第一個元素的首地址 D.該數組所有元素的首地址
7. 為表示關係x ≥ y ≥z,正確的C語言表達式為_________________________。
A.(x=y=z) B.(x=y)AND(y=z)
C.(x=y)(y=z) D.(xy)(y=z)
8. 根據定義int a[ ]={1,2,3},i,*p=a; 從語法分析_________________是不正確的。
A. a[p-a] B.*(a) C.p D.*(*(a+i))
9. 若有語句scanf(“%d%d”,a,b);要使變量a,b分別得到12和34;正確的輸入形式為____________________________。
A.12 34 B.12,34 C.1234 D.12:34
10.union uex {int i;float f;char c;}ex;則sizeof(ex)的值是____________________。
A.4 B.5 C.6 D.7
三. 分析程序,寫出運行結果。(每題4分,共20分)
1. 源程序如下,運行時假定鍵盤輸入字符串為“2004“
#include
void main(void)
{
int n=0;
char c;
while( (c=getchar( )) ! =`\n` ) /*字符型數字*/
{
if (c=`0`c=`9` )
n = n*10 + c- `0` ; /*數字*/
}
printf(“value=%d|n” ,n);
}
結果為: value=2004 。
2. 源程序如下:
#include
void main(void)
{
int num[9]={399,398,397,396,395,299,290,311,301};
int score[9]={81,85,59,77,90,66,89,93,73};
int iMax,iPos,i;
iPos=0;
iMax=score[iPos];
for(i=1;i9;i++)
if(scoreiMax)
{
iPos=i;
iMax=score[iPox];
}
printf(“num=%d,score=%d”,num[iPos];score[iPos]);
結果為: num=311, score=93 。
3. 源程序如下,運行時假定鍵盤輸入數據為:1 2 3 4 5 6 7 8 9 10
#include
void main(void)
{
int i,a[10];
int *p;
p=a;
for(i=0;i10;i++)
scanf(“%d“,p++);
for(p=a;p SPAN;p++)
if (*p%2)printf(“%3d”,*p);
}
結果為: 1 3 5 7 9 。
4. 源程序如下,兩次運行,分別輸入數據13和21
#include
#include
void main(void)
{
int n,s;
scant (“%d”,n);
s=panduan( n);
if(s==1)printf(“yes\n”);
else printf(“no\n);
}
int panduan(int n)
{
int k,j;
k=(int)sqrt((double)n);
for(j=2;j=k,j++)
{
if(n%j==0) break;
}
if(jk) retum(1);
else retum(0);
}
結果為 yes
no
5.源程序如下,運行時假定鍵盤輸入字符為:AxByCz
#include
#include
void main(void)
{
char str[80];
int i;
gets(str);
for(i=0;str!=`\0`;i++)
if(str=`a`str=`z`) str-=32;
else if (str=`A`str=`Z`) str+=32;
puts(str);
}
結果為: aXbYcZ 。
四. 下列程序中每個劃線處有一個錯誤,改正劃線 中的錯誤,使其實現題目要求。(每體4分,共20分)
1. 求 s=1+2+3+、、、、、、、+100
include 改正為_________________________。
void sum (void) 改正為_________________________。
{
int s,i;
for (s=0,i=1;i=100;i++)
{
s=s+ i ++; 改正為__________________________。
}
printf (“s=%f”,s) 改正為__________________________。
}
2. 源程序實現求x
#include
double pow(float . int) 改正為_________________________。
void main(void)
{
int i, n;
float x;
scanf (“%f,%d”,x,n);
for (i=1; i9;i++)
printf(“%d,%e\n”, i, pow(i,x);
} 改正為______________________。
double v v pow(float x, int n)
{
int i;
double p=0; 改正為______________________。
for (i=1; i i++)改正為_______________________。
p*=x;
retum(p);
}
3. 源程序實現排升序。
#include
void main(void)
{
int i, j, iMin, a[10]={4,3,5,1,10,12,2,6,7,9}, iTemp;
for (i=0; i9; i++)
{
iMin=0; 改正為_______________________。
for (j=i+1; j10;j++)
if(a[iMin] iMin=”j;”改正為_______________________。
if (iMin==i) 改正為_________________________。
{ iTemp=a;
a[iMin]=a; 改正為_________________________。
a[iMin]=iTemp;
}
}
for(i=0; i10; i++)
printf(“%4d”, a):
}
4. 源程序為求平均值。
#include
void main(void)
{
int i, sum; 改正為____________________。
float avg;
int sc[10], *p=sc;
for (i=0, i10; i++) 改正為____________________。
{
scanf(“%d”, p++);
sum+= *p; 改正為____________________。
}
avg = sum/ 10; 改正為___________________。
printf(“avg=%f”, avg);
}
5. 源程序求 eX=1+x+x2/2!+……+xn/n!前n+1項之和
#include
void main(void
{
float exp , x , t;
int i, n;
scanf(“%f, %d”,x, n);
t=0; 改正為___________________。
exp=1.0;
for(i=1 ; i=n; i++)
{
if(t1e-6) loop; 改正為__________________。
t+=x/i; 改正為___________________。
exp*=t; 改正為___________________。
}
printf(“\n%15.6f”, exp);
}
五. 編程題 (每題6分,共30分)
1. 根據以下程序框架,編寫子函數,實現交換兩個整型變量x和y的值。
#include
void swap (int *, int *);
void main (void)
{
int x, y;
scanf(“%d, %d”, x, y);
swap( x, y);
printf(“%d, %d”, x, y);
}
void swap( )
{
}
2. 設某班人數36人,參加C語言考試,用一維數組score[36]存放考試成績,已給出一部分程序,完善以下程序,使其實現統計並輸出不及格人數及百分比。
#include
void main (void)
{ int i;
float scoer[36], precent;
int count=0;
for (i=0; i36; i++)
{
scanf(“%f”, score);
}
3. 完善以下程序使其實現由鍵盤任意輸入一串字符,統計其中大寫字母個數iA、小寫字母個數ia、其他字符個數iother。
#include
#include
void main (void)
{
char str [80];
int i, iA=0, ia=0, iother=0;
}
4. 完善以下程序使其實現求方陣主和輔對角線元素之和及其轉置矩陣,設方陣用二維數組a表示,轉置矩陣用t表示,sl和s2表示主和輔對角線元素之和。
#include
void main(void)
{
int a[3] [3]={1,3,5,7,9,11,13,15,11};
int i, j, s1, s2;
int t[3] [3];
printf(“%d, %d,\n”,s1, s2);
for(i=0; i3; i++)
for(j=0; j3; j++)
printf(“%3d”, t [j]);
}
5. 已知字符數組str[80],編寫返回指針的子函數,實現在其中查找字符ch首次出現的位置。
#include
#include
#include
char *lstrchar(char*, char);
void main(void)
{
char c, *p, str[80];
gets (str);
scanf(“%c”, c);
p=lstrchar(str,c);
if(p==NULL) printf(“char %c not found\n”c);
else printf(“The position is %d”, p-str);
char “lstrchar( )
{ }
歷年全國計算機二級考試c語言真題及答案
原創文章,作者:UADWQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/128145.html