當前位置:首頁 » 編程語言 » c語言真題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言真題

發布時間: 2022-02-02 10:33:47

A. c語言題庫

譚浩強的C語言的那麼教程的相配套的習題集就足夠滿足你的要求了

B. C語言試題!

如果按照int類型佔2個位元組的話,第二個printf應該輸出1a6(D選項);如果按照int類型佔4個位元組的話,第二個printf應該輸出1b8。
p是一個int類型指針,假設int類型佔x個位元組的寬度,那麼p+9的值就是p的值加上9*x,當int類型佔2個位元組的寬度時,p+9的值就是p的值加上9*2,即0x194 + 9*2 = 0x1a6。

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)char<int <1ong int<=float<doubleB)char=int<1ong int<=float<doubleC)char< int <1ong int=float=doubleD)char=int =1ong int<=float<double4.假設所有變數均為整型,則表達式(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) 1020AB<CR> B)10 20<CR>AB<CR> C)10 20 AB<CR> D)10 20AB<CR>23.以下能正確地定義整型變數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+z&&y-z D) !(x<y)&&!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=w>x)&&(b=y>z);A)5 B)0 C)2 D)148.已知 x=43,ch='A',y=0;則表達式(x>=y&&ch<'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+z&&y-zD)!((x<y)&&!z50.以下不正確的if語句形式是( )。A) if(x>y&&x!=y)B)if(x==y)x+=y;C)if(x!=y) scanf("%d",&x) else scanf("%d",&y);D) if(x<y){x++;y++;}

D. C語言試題

自考「C語言程序設計」模擬試題一
2008-1-3
相關自考頻道點評提問自考網上培訓

自考「C語言程序設計」模擬試題一
一、填空題
1、C語言中基本的數據類型有:______、______ 、______ .
2、C語言中普通整型變數的類型說明符為______,在內存中占______位元組,有符號普通整型的數據范圍是______ .
3、整數-35在機內的補碼表示為______.
4、執行下列語句int a=8; a+=a-=a*a; 後,a的值是______.
5、有如下語句:char A[ ]={「I am a student」}; 該字元串的長度是______,A[3]=______.
6、符號「a」和『a』的區別是______.
7、所謂「指針」就是______.「&」運算符的作用是______.「*」運算符的作用是______.
8、有如下輸入語句:scanf(「a=%d,b=%d,c=%d」,&a,&b,&c);為使變數a的值為1,b的值為3,c的值為2,從鍵盤輸入數據的正確形式應是______.
二、選擇題
1、設整型變數a為5,使b不為2的表達式是( )。
A. b=a/2 B. b=6-(——a) C. b=a%2 D. b=a>3?2:1
2、為了避免嵌套的條件分支語句if-else的二義性,C語言規定:C程序中的else總是與( )組成配對關系。
A. 縮排位置相同的if B. 在其之前未配對的if
C. 在其之前未配對的最近的if D.同一行上的if
3、以下程序的輸出結果是( )。
int x=10,y=10;
printf(「%d %d\n」,x——,——y);
A. 10 10 B. 9 9 C. 9 10 D. 10 9
4、設A為存放(短)整型的一維數組,如果A的首地址為P,那麼A中第i 個元素的地址為( )。
A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i
5、選出下列標識符中不是合法的標識符的是( )。
A. hot_do B. cat1 C. _pri D. 2ab
6、以下程序的輸出結果是( )。
int a=5;
float x=3.14;
a*=x*(『E』 - 『A』);
printf(「%f\n」,(float)a);
A. 62.000000 B. 62.800000 C. 63.000000 D. 62
7、設有說明double(*p1)[N];其中標識符p1是( )。
A. N個指向double型變數的指針。
B. 指向N個double型變數的函數指針。
C. 一個指向由N個double型元素組成的一維數組的指針。
D.具有N個指針元素的一維指針數組,每個元素都只能指向double型量。
8、在C程序中有如下語句:char *func(int x,int y);它是( )。
A. 對函數func的定義。 B. 對函數func的調用。
C.對函數func的原型說明。 D. 不合法的。
9、以下程序的輸出結果是( )。
char str[15]=「hello!」;
printf(「%d\n」,strlen(str));
A. 15 B. 14 C. 7 D. 6
10、分析以下程序的輸出結果是( )。
main()
{int a=5,b=-1,c;
c=adds(a,b);
printf(「%d」,c);
c=adds(a,b);
printf(「%d\n」,c); }
int adds(int x,int y)
{static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m); }
A. 2,3 B. 2,2 C. 3,2 D. 2,4
11、下列描述中不正確的是( )。
A. 字元型數組中可能存放字元串。
B. 可以對字元型數組進行整體輸入、輸出。
C. 可以對整型數組進行整體輸入、輸出。
D. 不能在賦值語句中通過賦值運算符「=」對字元型數組進行整體賦值。
12、以下程序的輸出結果是( )。
#define f(x) x*x
main()
{int a=6,b=2,c;
c=f(a)/f(b);
printf(「%d\n」,c);
}
A. 9 B. 6 C. 36 D. 18
13、設有如下定義: int x=10,y=3,z;
則語句printf(「%d\n」,z=(x%y,x/y)); 的輸出結果是( )。
A. 1 B. 0 C. 4 D. 3
14、定義如下變數和數組:int i;int x[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
15、以下對二維數組a進行正確初始化的是( )
A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6};
C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}};
16、兩次運行下面的程序,如果從鍵盤上分別輸入6和3,則輸出結果是( )。
int x;
scanf(「%d」,&x);
if(x++>5) printf(「%d」,x);
else printf(「%d\n」,x - -);
A. 7和5 B. 6和3 C. 7和4 D. 6和4
17、設有如下定義: char *aa[2]={「abcd」,「ABCD」}; 則以下說法中正確的是( )。
A)aa數組成元素的值分別是「abcd」和ABCD「
B)aa是指針變數,它指向含有兩個數組元素的字元型一維數組
C)aa數組的兩個元素分別存放的是含有4個字元的一維字元數組的首地址
D)aa數組的兩個元素中各自存放了字元『a』和『A』的地址
18、下列程序的輸出結果是( )。
char *p1=「abcd」, *p2=「ABCD」, str[50]=「xyz」;
strcpy(str+2,strcat(p1+2,p2+1));
printf(「%s」,str);
A. xyabcAB B. abcABz C. ABabcz D. xycdBCD
19、下列程序的輸出結果是( )。
int a[5]={2,4,6,8,10},*P,* *k;
p=a; k=&p;
printf(「%d」,*(p++));
printf(「%d\n」,* *k);
A. 4 4 B. 2 2 C. 2 4 D. 4 6
20、不能把字元串:Hello!賦給數組b的語句是( )。
A. char b[10]={『H』,『e』,『l』,『l』,『o』,『!』};
B. char b[10]; b=「Hello!」;
C. char b[10]; strcpy(b,「Hello!」);
D. char b[10]=「Hello!」;
三、讀程序題
1、float f=3.1415927;
printf(「%f,%5.4f,%3.3f」,f,f,f);
則程序的輸出結果是 .
2、int x=6, y=7;
printf(「%d,」,x++);
printf(「%d\n」,++y);
程序的輸出結果是 .
3、a=3;
a+=(a<1)?a:1;
printf(「%d」,a);
結果是.
4、for (a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1)
{b+=3; continue;}
b-=5; }
程序的輸出結果a的值為 .
5、int y=1, x, *p, a[ ]={2,4,6,8,10};
p=&a[1];
for(x=0;x<3;x++)
y + = * (p + x);
printf(「%d\n」,y);
程序的輸出結果y的值是 .
四、程序填空題
1、從鍵盤上輸入10個數,求其平均值。
main()
{int i;
float f,sum;
for(i=1,sum=0.0;i<11;i++)
{ ;
; }
printf(「average=%f\n」,sum/10); }
2、以下程序是建立一個名為myfile的文件,並把從鍵盤輸入的字元存入該文件,當鍵盤上輸入結束時關閉該文件。
#include
main()
{ FILE *fp;
char c;
fp= ;
do{
c=getchar();
fputs(c,fp);
}while(c!=EOF);
}
3、以下程序的功能是:從鍵盤上輸入若干個學生的成績, 統計並輸出最高成績和最低成績,當輸入負數時結束輸入。請填空。
main()
{ float x,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); }
五、編程題
1. 三個整數a、b、c,由鍵盤輸入,輸出其中最大的一個數。
2.輸出1900~2000年中所有的閏年。每輸出3個年號換一行。(判斷閏年的條件為下面二者之一:能被4整除,但不能被100整除。或者能被400整除。)
3.請編一個函數int fun(int a),它的功能是:判斷a是否是素數,若a是素數,返回1;若不是素數,返回0.A的值由主函數從鍵盤讀入。
4.有N個學生,每個學生的信息包括學號、性別、姓名、四門課的成績,從鍵盤上輸入N個學生的信息,要求輸出總平均成績最高的學生信息,包括學號、性別、姓名和平均成績。

參考答案
一、填空題
(1)整型、實型、字元型。
(2)int,2,-32768~ +32767
(3)1111111111011101
(4)- 112
(5)14,『m』
(6)「a」是字元串常量,而『a』是字元常量。
(7)存放地址值的變數或常量,或者答地址。
(8)取運算對象的地址。 取指針變數所指的內容。a=1,b=3,c=2
二、選擇題
1、C 2、C 3、D 4、B 5、D
6、A 7、C 8、C 9、D 10、A
11、C 12、C 13、D 14、C 15、B
16、C 17、D 18、D 19、C 20、B
三、閱讀程序題
(1) 3.141593,3.1416,3.142
(2) 6,8
(3) 4
(4) 22
(5) 19
四、程序填空題
1、scanf(「%f」,&f); sum+=f;
2、fopen(「myfile」,w) fclose(fp);
3、x>=0.0 x<=amin
五、編程題
1、main()
{int a,b,c;
printf(「請輸入三個整數:」);
scanf(「%d,%d,%d」,&a,&b,&c);
if(a

if(b

else printf(「max=%d\n」,b);
else if(a

else printf(「max=%d\n」,a);}
2、#include「stdio.h」
main()
{int I,n;
for(n=0,I=1900;I<=2000;I++)
{if(I%4==0&&I0!=0||I@0==0)
{printf(「%d 」,I);n++;}
if(n%3==0)
printf(「\n」);} } }
3、#include「stdio.h」
int fun(int a)
{int I;
if(a==2) return 1; I=2;
while((a%I)!=0&&I<=sqrt((float)a))
I++;
if(a%I==0)
{printf(「%d is not a prime!」,a);
return 0;}
printf(「%d is a prime!」,a);
return 1; }
main()
{int x;
printf(「\n please enter a number:」);
scanf(「%d」,&x);
printf(「%d\n」,fun(x)); }
4、#include「stdio.h」
#define N 3
struct student
{long stu_num; char sex;
char name[15]; int score[4];
float average; };
main()
{int I,j,index; float sum,max;
struct student stuarr[N];
for(I=0;I

{printf(「please input %d student information:\n」,I+1);
scanf(「%ld,%c,%s」,&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);
for(j=0;j<4;j++)
scanf(「%d」,&stuarr[I].score[j]); }
for(I=0;I

{sum=0.0;
for(j=0;j<4;j++)
sum+=stuarr[I].score[j];
stuarr[I].average=sum/4.0;}
max=stuarr[0].average;
index=0;
for(I=1;I

if(stuarr[I].average>max)
{max=stuarr[I].average;
index=I; }
printf(「總平均成績最高的學生信息是學號=%ld,性別=%c,姓名=%s,平均成績=%4.1f\n」,stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);
}

E. C語言考試題

直接以變數作為實參進行調用即可,而不需要實參變數有任何的特殊要求。
#include
int main()
{char s1[200],s2[200],*p,*q;
int k,m;
gets(s1);
scanf("%d%*c",&k);
gets(s2);
for(m=0;s2[m];m++);
p=s1+k;
for(q=p;*q;q++);
for(;q>=p;q--)*(q+m)=*q;
for(q=s2;*q;*p++=*q++);
puts(s1);
return 0;
}

F. c語言題庫

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dome2
{
class Student
{
public string name;
public float[] score=new float[3];
public float sum, avg;
public void InitScore()
{
this.sum = 0;
this.avg = 0;
}
public void GetScore()
{
Console.WriteLine("學員姓名:");
this.name = Console.ReadLine();
for (int i = 0; i < score.Length; i++)
{
Console.WriteLine("第{0}門的成績是:",i+1);
this.score[i] = float.Parse(Console.ReadLine());
}
Console.WriteLine();
}
public void GetSum()
{
for (int i = 0; i < score.Length; i++)
{
this.sum+=this.score[i];
}
this.avg = this.sum / 3;
}
public void DisplayScore()
{
Console.WriteLine("學員姓名:{0}", this.name);
for (int j = 0; j < 3; j++)
{
Console.WriteLine("第{0}門課程考試成績是{1}", j + 1, this.score[j]);
} Console.WriteLine("三門課程的總成績是{0},平均成績是{1}",this.sum, this.avg.ToString("0.00"));
Console.WriteLine();
}
}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dome2
{
class Program
{
static void Main(string[] args)
{
Student[] student = new Student[5];
float max = 0,average = 0;
int i;
int counter = 0;
for (i = 0; i < student.Length; i++)
{
student[i] = new Student();
student[i].GetScore();
student[i].GetSum();
}
for (i = 0; i < student.Length; i++)
{
student[i].DisplayScore();
}
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("========================================================");
for (i = 0; i < student.Length;i++ )
{
counter++;
max = student[i].sum + max;
average = student[i].avg + average;
}
Console.WriteLine("班級參加考試人數:{0} 最高分:{1} 平均分:{2}", counter, max, average);
}
}
}

G. C語言考試題目

//最近很多人在問這一題,原來是考試題目來的啊.

#include<stdio.h>
typedef struct STUDENT
{
char num[11];//學號
char name[8];//姓名
char Class[20];//class是保留字,不能用.
float score[3],ave;//成績,平均分
}student_type;
student_type stud[4];
void save()
{
FILE *fp=NULL;
int i;
while(fp==NULL) fp=fopen("D:\\score.txt","w+");
fprintf(fp,"num\t\t name\t class\t score1\t score2\t score 3\t ave\t\n");
for(i=0;i<4;i++)
fprintf(fp,"%s\t %s\t %s\t %5.2f\t %5.2f\t %5.2f\t %5.2f\t\n",stud[i].num,stud[i].name,stud[i].Class,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].ave);
fclose(fp);

}

void display()
{
char str[255];
FILE *fp=NULL;
while(fp==NULL) fp=fopen("D:\\score.txt","r+");
while(!feof(fp)) {fgets(str,255,fp);printf("%s",str);}
fclose(fp);
}

void main()
{

int i;
for(i=0;i<1;i++)
{
printf("輸入學號:\n");
scanf("%s",stud[i].num);
printf("輸入姓名:\n");
scanf("%s",stud[i].name);
printf("輸入班級:\n");
scanf("%s",stud[i].Class);
printf("輸入成績(三個):\n");
scanf("%f %f %f",&(stud[i].score[0]),&(stud[i].score[1]),&(stud[i].score[2]));
stud[i].ave=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3;
}
save();
display();
return;
}

H. C語言考試題 急!!!

1-5:DABBB
6-10:DBBAB
11-14:CBBD
以後這樣的題自己做啊,很簡單的,好好學學C就好了

I. c語言試題

第1 個 "4" :4-2 =2 執行putchar(c+4);break; 結果為 4+4=8
第2 個 "4" :4-2 =2 執行putchar(c+4);break; 結果為 4+4=8
第3 個 "6" :6-2 =4 執行default: putchar(c+2);break;結果為 6+2=8
第4 個 "7" :7-2 =5 執行default: putchar(c+2);break;結果為 7+2=9
第5 個 "5" :5-2 =3 執行case 3: putchar(c+3);
default: putchar(c+2);break;結果為 5+3=8 5+2=7
第6 個 "5" :5-2 =3 執行case 3: putchar(c+3);
default: putchar(c+2);break;結果為 5+3=8 5+2=7
後面的兩個是由於case 3 後面沒有break;繼續執行下面語句,直到遇到break;
最終結果 選 C

J. C語言期末考試試題(譚浩強版)

C語言期末考試試題
2008年04月12日 星期六 00:22

一 選擇題(24分,每小題2分)
1.已知函數fread的調用形式為fread(buffer,size,count,fp),其中buffer代表的是()。

A 存放讀入數據項的存儲區
B 存放讀入數據的地址或指向此地址的指針
C 一個指向所讀文件的文件指針
D 一個整形變數,代表要讀入的數據項總數

2.以下程序的輸出結果為( )。
main( )
{
int i=010,j=10;
printf("%d,%d\n",i++,j--);
}

A 11,9
B 9,10
C 8,10
D 9,9

3.設a為int型變數,執行下列賦值語句後,a的取值分別是( )。
a=125.534;
a=20.0/3;
a=(int)125.521%4;
a=5<<2;

A 125,6,31,1
B 125,6,1,20
C 125,6.666666,31,20
D 125.534,6.666666,2,20

4.設i和k都是int類型,則for循環語句( )。
for(i=0,k=-1;k=1;i++,k++)
printf("****\n");

A 循環結束的條件不合法
B 循環體一次也不執行
C 循環體只執行一次
D 是無限循環

5.以下程序的輸出結果為( )。
main( )
{
char c;
int i;

for(i=65;i<68;i++)
{
c=i+32;
switch(c)
{
case 'a':
case 'b':
case 'c':printf("%c,",c);break;
default:printf("end");
}
}
}

A a,b,c,end
B a,a,a,end
C a,a,a,
D a,b,c,

6.函數調用語句:fseek(fp,-10L,2);的含義是( )。
A 將文件位置指針從文件末尾處向文件頭的方向移動10個位元組
B 將文件位置指針從當前位置向文件頭的方向移動10個位元組
C 將文件位置指針從當前位置向文件末尾方向移動10個位元組
D 將文件位置指針移到距離文件頭10個位元組處

7.以下程序的輸出結果為( )。
main( )
{
int i=0,j=0;
while(s1[i]!='\0')
i++;
while(s2[j]!='\0')
s1[i++]=s2[j++];
s1[i]=0;

printf("%s\n",s1);
}

A side
B country
C sidetry
D countryside

8.下列說法不正確的是( )。

A 主函數main中定義的變數在整個文件或程序中有效
B 不同函數中,可以使用相同名字的變數
C 形式參數是局部變數
D 在一個函數內部,可以在復合語句中定義變數,這些變數只在本復合語句中有效

9.在下列程序段中,枚舉變數 c1的值是( )。
enum color { red,yellow,blue=4,green,white}c1;
c1=yellow;
c1=white;

A 1
B 3
C 5
D 6

10.設有說明 int (*ptr)();其中標識符ptr是( )。

A 是一個指向整形變數的指針
B 是一個指針,它指向一個函數值是int的函數
C 是一個函數名
D定義不合法

11.定義由n個指向整形數據的指針組成的數組p,其正確的方式為( )。

A int p;
B int (*p)[n];
C int *p[n];
D int (*p)( );

12.具有相同類型的指針類型變數p與數組a,不能進行的操作是( )。

A p=a;
B *p=a[0];
C p=&a[0];
D p=&a;

二 判斷對錯,對的劃「√」,錯的劃「×」(20分,每小題2分)

1.參加位運算的數據可以是任何類型的數據。 ( )

2.若有定義和語句:
int a;
char c;
float f;
scanf("%d,%c,%f",&a,&c,&f);

若通過鍵盤輸入:10 A 12 5
則a=10,c=『A』,f=12.5。 ( )

3.C語言把文件看作是一個字元(位元組)的序列。 ( )

4.若有宏定義:
#define S(a,b) t=a;a=b;b=t
由於變數t沒定義,所以此宏定義是錯誤的。 ( )

5.在Turbo C中,下面的定義和語句是合法的:
file *fp;
fp=fopen("a.txt","r"); ( )

6.若有定義:
char s[ ]="china";
則Turbo C系統為數組s開辟6個位元組的內存單元。 ( )

7.若有定義和語句:
int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++)
sum+=a[i][2-i];
則sum=21。 ( )

8.若有定義和語句:
struct student
{
int num;
char name[10];
float score;
}
s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);
輸出結果是1。 ( )

9.在程序中定義了一個結構體類型後,可以多次用它來定義具有該類型的變數。 ( )

10.在Turbo C中,此定義和語句是合法的:
enum aa{ a=5,b,c}bb;
bb=(enum aa)5; ( )

三 寫出下列程序的運行結果(36分,每小題6分)
1.
main( )
{
int i=29,j=6,k=2,s;
s=i+i/j%k-9; //s=i+(i/j)%k-9
printf(「s=%d\n」,s);
}

2.
main( )
{
int x=31,y=2,s=0;
do
{
s-=x*y;
x+=2;y-=3;
}
while(x%3==0); //先執行,後判斷
printf(「x=%d\ty=%d\ts=%d\n」,x,y,s);
}

3.
main( )
{
int a[6]={10,20,30,40,50,60},i;
invert(a,0,5);
for(i=0;i<6;i++)
printf(「%d,」,a[i]);
printf(「\n」);
}

invert(int s[ ],int i,int j) //倒置
{
int t;
if(i<j)
{
invert(s,i+1,j-1); //函數自身的嵌套調用,形成循環
t=s[i];
s[i]=s[j];
s[j]=t;
}
}

4.
#include <stdio.h>

main()
{
char str[ ]="The C program",c;
int i;
for(i=2;(c=str[i])!='\0';i++)
{
switch(c)
{
case 'g': ++i; break; //由於++i,跳過了g後面的1個字母
case 'o': continue;
default: printf(「%c」,c); continue;
}
printf(「*」);
}
printf(「\n」);
}

5.
struct w //結構體
{
char low;
char high;
};

union u //共用體
{
struct w byte;
short word;
}uw;

main( )
{
int result;
uw.word=0x1234;

printf("word value:%04x\n",uw.word);
printf("high byte:%02x\n",uw.byte.high);
printf("low byte:%02x\n",uw.byte.low);

uw.byte.low=0x74;

printf("word value:%04x\n",uw.word);
result=uw.word+0x2a34;
printf("the result:%04x\n",result);
}

6.
main()
{
char *s2="I love China!",**s1=&s2;
char *s3,c,*s4="w";
s3=&c;
*s3='H';
s2=s2+2;
printf("%s\t%c\t%s\t%c\n",s2,*s3,s4,**s1);
}

四 閱讀下列程序,在 處填入適當內容,使程序完整(20分,每個空2分)

1.百馬百擔問題:有100匹馬,馱100擔貨,大馬馱3擔,中馬馱2擔,兩匹小馬馱1擔,問大、中、小馬各多少匹?
main( )
{
int hb,hm,hl,n=0;
for(hb=0;hb<=100;hb+=(1))
for(hm=0;hm<=100-hb;hm+=(2))
{
hl=100-hb- (3) ;
if(hb/3+hm/2+2*(3)==100)
{
n++;
printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl);
}
}
printf("n=%d\n",n);
}

2.用「起泡法」對輸入的10個字元排序後按從小到大的次序輸出。
#define N 10

char str[N];

void main()
{
int i,flag;

for(flag=1;flag==1;)
{
scanf("%s",str);
flag=0;
printf("\n");
}

sort(___(4)___);

for(i=0;i<N;i++)
{
printf("%c",str[i]);
}
printf("\n");
}

sort(char str[N]) //冒泡排序
{
int i,j;
char t;

for(j=1;j<N;j++)
for(i=0;i<10-j;i++)
if(str[i]>str[i+1])
{
t=str[i];
____(5)____;
____(6)____; //交換位置
}
}

3.以下程序是一個函數,功能是求二階矩陣(m行n列矩陣)的所有靠外側的各元素值之和。(本程序中二階矩陣用一維數組來表示。)

例如,矩陣為:
3 0 0 3
2 5 7 3
1 0 4 2
則所有靠外側的各元素值之和為3+0+0+3+2+3+1+0+4+2=18。

add(int m,int n,int arr[])
{
for(i=0;i<m;i=i+m-1)
for(j=0;j<n;j++)
sum=sum+____(7)____;
for(j=0;j<n;j=j+n-1)
for(i=1;____(8)____;i++)
sum=sum+arr[i*n+j];
return(sum);
}

4.用指針作函數參數,編程序求一維數組中的最大和最小的元素值。
#define N 10
main()
{
void maxmin(int arr[],int *pt1,int *pt2,int n);
int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;
p1=&a;
p2=&b;
maxmin(array,p1,p2,N);
printf("max=%d,min=%d",a,b);
}

void maxmin(int arr[],int *pt1,int *pt2,int n)
{
int i;
*pt1=*pt2=arr[0];
for(i=1;i<n;i++)
{
if(arr[i]>*pt1)
____(9)____ ;

if(arr[i]<*pt2)
____(10)____ ;
}
}

答案
一 選擇題(24分,每小題2分)
1.( B ) 2.( C ) 3.( B )
4.( D ) 5.( D ) 6.( A )
7.( D ) 8.( A ) 9.( D )
10.( B ) 11.( C ) 12.( D )
二 判斷對錯,對的劃「√」,錯的劃「×」(20分,每小題2分)
1.( × ) 2.( √ )
3.( √ ) 4.( × )
5.( × ) 6.( √ )
7.( √ ) 8.( × )
9.( √ ) 10.( √ )
三 寫出下列程序的運行結果(36分,每小題6分)
1.s=20
2.x=35 y=-4 s=-29
3.60,50,40,30,20,10,
4.e C pr*am
5.word value:1234
6.love China! H w l
high byte:12
low byte:34
word value:1274
the result:3ca8
四 閱讀下列程序,在 處填入適當內容,使程序完整(20分,每個空2分)
1.(1) 3 (2) 2 (3)hm hl
2.(4) str (5) str[i]=str[i+1] (6) str[i+1]=t
3.(7) arr[i*n+j] (8) i<m-1
4.(9) *ptr1=arr[i] (10) *ptr2=arr[i]