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

高考c語言試題

發布時間: 2022-11-03 07:31:56

A. 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);
}

B. C語言試題,求答案

一、選擇題(共10個)

  1. ③ 2.③ 3.① 4.④ 5.③ 6.① 7.④ 8.① 9.① 10.①

二、填空題(共7個)

  1. -32768 ~ 32767(16位機)

  2. 0

  3. 下劃線 下劃線

  4. double a=0.618

  5. 11、6

三、判斷題(共5個)

  1. X

四、閱讀以下C語言程序,以下程序的程序輸出的結果是2,1。

五、有兩個浮點數a=5.2,b=3.1,計算並輸出它們的和、差、積、商。

//#include "stdafx.h"//vc++6.0加上這一行.

#include "stdio.h"//

void main(void){

double a=5.2,b=3.1;

printf("a + b = %f a - b = %f a x b = %f a÷ b = %f ",a+b,a-b,a*b,a/b);

}

C. C語言題目 離高考還有幾天 幫忙解答,著急!

#include<stdio.h>
int main()
{
int a,b,c,d,x;
scanf("%d.%d.%d",&a,&b,&c);
if(b<6||(b=6&&c<6))
{
d=eryue(a);
switch(b)
{
case 1:x=31-c+d+31+30+31+6;break;
case 2:x=d-c+31+30+31+6;break;
case 3:x=31-c+30+31+6;break;
case 4:x=30-c+31+6;break;
case 5:x=31-c+6;break;
case 6:x=6-c;break;
}
}
else
{
d=eryue(a+1);
switch(b)
{
case 6:x=30-c+31+31+30+31+30+31+d+129;break;
case 7:x=31-c+31+30+31+30+31+d+129;break;
case 8:x=31-c+30+31+30+31+d+129;break;
case 9:x=30-c+31+30+31+d+129;break;
case 10:x=31-c+30+31+d+129;break;
case 11:x=30-c+31+d+129;break;
case 12:x=31-c+d+129;break;
}
printf("%d days.",x);
return 0;
}
int eryue(int a)
{
if((a%4==0&&a%100!=0)||a%400==0)
return 29;
else
return 28;
}

D. 幫我看看2道簡單的C語言題目

1.y=6,y=x>7? 6:5;的意思是如果x>7的話y=6,否則等於5。
2.j=6,k=7 ,k++的意思是先取k的值,再給k+1,和++k不同。如果j=++k,那麼先給k+1,再取k的值,即j=7,k=7.

E. 有關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++;}

F. 求C語言試題

《C語言》綜合練習題一
注意:以下 「□」為空格,<CR>為回車
一、 單選題
1、閱讀以下程序,當輸入數據的形式為:25,13,10 <CR>,正確的輸出結果為( )
void main( )
{ int x,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n",x+y+z);}
A) x+y+z=48 B) x+y+z=35 C) x+y+z=38 D) 不確定值
2、下面程序的輸出是( )
void main()
{ int y=0;
while(y--);
printf("y=%d\n",y); }
A) y=0 B) while 構成無限循環 C) y=-1 D) y=1
3、在以下各組標識符中,合法的用戶標識符是( )。
A) xy_ B) longdouble C) *p D) CHAR
變數1 signed history Float
4、以下能正確計算1*2*3…*10的程序段是( )
A) do { i=1;s=1;s=s*i;i++;}while (i<=10);
B) do {i=1;s=0;s=s*i;i++;} while(i<=10);
C) i=1;s=1; do{ s=s*i;i++;}while (i<=10);
D) i=1;s=0; do{ s=s*i;i++;}while (i<=10);
5、在下列各m的值中,能使表達式m%3==2 &&m%5==3 && m%7==2為真的是( )
A) 8 B) 23 C)17 D) 6
6、運行以下程序後,如果從鍵盤上輸入 china#<回車>,則輸出結果為( )
A) 2,3 B) 3,5
C) 5,2 D) 2,5
#include <stdio.h>
void main()
{ int v1=0,v2=0; char ch;
while((ch=getchar())!='#')
switch(ch)
{ case 'a':
case 'h': v1++;
default: v2++;
}
printf("%d,%d\n",v1, v2);
}
7、有如下程序
void main( )
{ int i,sum=0;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
該程序的執行結果是( )
A) 6 B) 3 C) 死循環 D) 0
8、能正確表示a和b 同時為正或同時為負的邏輯表達式是( )
A) (a>=0‖b>=0)&&(a<0‖b<0)
B) (a>=0&&b>=0)&&(a<0&&b<0)
C) (a+b>0)&&(a+b<=0)
D) a*b>0
9、下列定義數組正確的是( )
A) #define size 10 B) int n=5;
char str1[size],str2[size+2]; int a[n][n+2];
C) char str[]; D) int num['10'];
10、以下程序的功能是計算:s= 1+1/2+1/3+… …+1/10
void main()
{ int n; float s
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f\n",s);
}
程序運行後輸出結果錯誤,導致錯誤結果的程序行是
A)s=1.0; B)for(n=10;n>1;n--)
C)s=s+1/n; D)printf("%6.4f\n",s);
11、以下說法正確的是( )
A) 輸入項可以為一個實型常量,如scanf("%f",3.5);
B) 只有格式控制,沒有輸入項,也能進行正確的輸入,如scanf("a=%d,b=%d");
C) 當輸入一個實型數據時,格式控制部分應規定小數點後的位數,如scanf("%4.2f",&f);
D) 當輸入數據時,必須指明變數的地址,如scanf("%f",&f);
12、設x=2.5、a=7,則算術表達式x+2*++a/3%3的值為( )。
A) 2.5 B)3.5
C) 4.5 D)5.5
13、若有說明:int a[3][4]={0}; 則下面正確的敘述是( )
A) 只有元素a[0][0]可得到初值0
B) 此說明語句不正確
C) 數組a中個元素都可以得到初始值,但其值不一定為0
D) 數組a中個元素都可得到初值0
14、設a=3,b=4,c=5, 則表達式 !(a+b)+c-1&&b+c/2的值為( )。
A)6.5 B) 6
C) 0 D)1
15、在下列有關#include命令的敘述中,錯誤的一條是( )
A)在#include命令中,文件名可以用雙引號或尖括弧括起來
B)在一個包含文件中又可以包含另一個被包含文件
C)在一個#include命令中可以指定一個包含文件
D)在一個#include命令中可以指定多個包含文件
16、以下不正確的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++;}
17、有如下程序
void main()
{ int x=1,a=0,b=0;
switch(x){
case 0: b++;
case 1: a++
case 2: 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=2
18、閱讀以下程序:
void main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d",x);
else printf("%d",x++);
}
程序運行後,如果從鍵 盤上輸人5,則輸出結果是
A)3 B) 4 C) 5 D) 6
19、請閱讀以下程序:
void main( )
{ int a=5,b=0,c=0;
if(a=b+c) printf("***\n");
else printf("$$$\n");
}
以上程序( )
A) 有語法錯誤不能通過編譯 B) 可以通過編譯但不能通過連接`
C) 輸出 *** D) 輸出$$$
20、執行以下程序段時 ( )
x=-1; do {x=x*x; } while(! x);
A) 循環體將執行一次 B) 循環體將執行兩次
C) 循環體將執行無限次 D) 系統將提示有語法錯誤
21、若x是int型變數,且有下面的程序片段:
for(x=3; x<6; x++) printf((x%2)?("**%d"):("##%d\n"),x);
上面程序片段的輸出結果是
A) **3 B) ##3 C) ##3 D) **3##4
##4 **4 *4##5 **5
**5 ##5
22、以下敘述中不正確的是( )。
A. 一個好的程序應該有詳盡的注釋
B.C程序中的#include和#define均不是C語句
C. 在C程序中,賦值運算符的優先順序最低
D. 在C程序中,j++;是一條賦值語句二、 填空題
1、其後標有/* */的語句的執行次數是【 】
int y,i;
for(i=0;i<20;i++)
{
if(i%2==0) continue;
y+=i; /* */
}
2、下面程序的功能是從鍵盤輸入的10個數中,找出第一個能被7整除的數。若找到,列印此數後退出循環;若未找到,列印"not exist"。 請填空。
main( )
{ int n,a;
for(n=1; n<=10; n++)
{ scanf("%d",&a);
if(a%7==0) { printf("%d",a); 【 】;}
}
if (n==【 】) printf("not exist\n");
}
3、設i、j、k均為int型變數,則執行下面語句後k的值為【 】:
for(i=0, j=10, k=0; i<j; i++, j--)
k+=i+j;
4、. 以下程序是計算某年某月有幾天。判斷閏年的條件是:能被4整除但不被100整除或能被400整除的年份為閏年。
void main( )
{ int yy,mm,len;
printf(「輸入年份和月份:」);scanf(「%d%d」,&yy,&&mm);
switch(mm)
{ case 1: case 3: case 5: case 7: case 8: case 10: case 12: len=31 ; break;
case 4: case 6: case 9: case 11: len=30; break;
case 2:
if(【 】) len=29;
else len=28 ;
break;
default: printf(「輸入得月份無效!\n」);
}
printf(「%d年%d月有%d天\n」, 【 】);
}
5、下面程序讀入20個整數,然後統計非負數的平均值。
main ( )
{ int i, a[20], s, count;
s=count=0;
for ( i=0; i<20; i++ )
scanf (" %d" , 【 】 );
for ( i=0; i<20; i++ )
if ( a[i]>=0 ) {【 】; count++; }
printf ("ave=%f\n" , 【 】);
}
6、下面程序為求最小正整數n,使調和級數前n項之和大於預先給定的實數a。
> a,
main( ){
int n=0;
float s=0.0;
while (【 】) { 【 】; n++; }
print("「所求的數值為%f\n" ,s);
}
7、設數組a的元素均為正整數,以下程序是求a中偶數的個數和偶數的平均值。請填空。
main( )
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
int k,s i;float ave;
for(k=s=i=0; i<10;i++)
{ if ( a[i]%2 !=0) 【 】;
s+=【 】;
k++;
}
if(k!=0) { ave=s/k; printf("%d,%d\n", k,ave);}
}
8.下面的程序輸出是【 】。
void main( ) {
int a=7, b=5;
printf("%d\n",b=a/b);
}
9. 若a=2,b=4,則表達式 !(x=a)||(y=b) && 0 的值是【 】.
10. 下面程序的運行結果是 【 】。
main()
{ int a[5][5],i,j,n=1;
for(i=0;i<5;i++)
for(j=0;j<5;j++) a[i][j]=n++;
printf("The result is \n");
for(i=0;i<3;i++)
{ for(j=0;j<=i;j++) printf("%3d",a[i][j]);
printf("\n");
}
}
11. .以下程序實現輸出x,y, z三個數中的最大者。
void main( )
{ int x,y,z,u;
scanf(「%d%d%d」,&x,&y,&z);
if【 】u=z; else u=y;
if【 】 u=x;
printf(「最大為:%d\n」,u);
}
12、以下程序的運行結果是【 】
void main()
{ int a1,a2,b1,b2; int i=5,j=7,k=0;
a1 = !k; a2=i!=j;
printf("a1=%d\ta2=%d\n",a1,a2);
b1=k &&j; b2= k||j;
printf("b1=%d\tb2=%d\n",b1,b2);
}
13、下面程序的運行結果是【 】。
void main()
{ int k,t,sum=0;
for(t=k=1; k<=10;)
{ sum+=t; ++k;
if(k%3==0) t=-k;
else t=k;
}
printf("sum=%d",sum);
}
14、下面程序的功能是輸入5個整數, 找出最大數和最小數所在的位置,並把二者對調,然後輸出調整後的5個數。請填空。
void main()
{ int a[5], max,min,i,j.k;
for(i=0;i<5;i++) scanf("%d",&a[i]);
min=a[0];max=a[0];
for(i=1;i<5;i++)
if((a[i]<min) {min=a[i];【 】;}
for(i=1;i<5;i++)
if((a[i]>max) {max=a[i];【 】;}
【 】;
printf("\n The position of min is : %3d\n",k);
printf("The position of max is: %3d\n",j);
for(i=0;i<5;i++) printf("%5d",a[i]);
}
15、變數x不小於1且小於10的表達式是【 】。
16、若有int ⅰ=10, j=0;
則執行完語句if (j=0)ⅰ+ +; else ⅰ- -; 後變數ⅰ的值為【 】。
17、下面程序段的運行結果是【 】。
x=2;
do { printf("*"); x--;} while(!x==0);
18.輸入以下數據:
How are you?<回車>
則下面程序段的執行結果是: 【 】。
#include <stdio.h>
main( )
{ while (putchar(getchar( )) !='?');
}
19、main( )
{ int number=3;
while(――number>0) printf(「*%d,」, number);
printf(「**%d」, number);
}
這個程序的輸出結果是:【 】。
20.華氏和攝氏的轉換公式為C=5/9*(F-32),其中C表示攝氏的溫度,F表示華氏的溫度。以下程序輸出從華氏0度到華氏300度,每隔20度輸出一個值,請填空。
main( )
{ int upper, step;
float fahr=0, celsius;
upper=300; step=20;
while (fahr <upper)
{ 【 】 ;
printf ("%4.Of, %6.1f\n", fahr, celsius);
【 】 ;
} }
21、求下列數列前20項之和

main( )
{ int i,f1=1,f2=2; float s=0.0;
for(【 】)
{ s=s+(float)f2/f1;
f2=f1+f2;
f1= 【 】。 ;
}
printf("%f\n",s);
}
22、程序讀入50個整數,統計非負數個數,並計算非負數之和。
#include " stdio.h"
main ( )
{ int i, a[50], s, count;
s=count=o;
for ( i=0; i<20; i++ )
scanf (" %d" , 【 】);
for ( i=0; i<20; i++ )
{ if ( a[i]<0 ) 【 】;
s += a[i];
count++;
}
printf ("s=%d\t count=%d\n" , s, count);
}
三、編程題(類似課本習題,如)
1. 按下面的近似公式計算
s = 1/1 -1/2 +1/3 - … +(-1)n-11/n +…
使誤差小於給定的e .
(其他略)
參考答案:
一、 單項選擇題
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
D C D C B C C D A C D C D D D C A B D C D C二、 填空題
1 2 3 4 5 6
10
break
11 50 (yy%4==0&&yy%100!=0||yy%400==0)
yy, mm, len &a[i]
s=s+a[i]
(float)s/conut s<=a
s=s+1.0/n7 8 9 10 11 12
continue
a[i]
1 0 The result is:
1
6 7
11 12 13 z>y
x>u
a1=1 a2=1
b1=0 b2=113 14 15 16 17 18
sum=19
j=i
k=i
a[j]=max;a[k]=min; (x>=1) && ( x<10) 9 ** How are you?19 20 21 22
*2, *1 , **0 Celsius=5/9*(fahr-32)
fahr+=step i=1;i<=20;i++ f2-f1 &a[i]
continue 三、 編程題 (答案不唯一!)#define E 1E5
void main( )
{
int n=1,k=-1;
float s=0;
do{
k=-k;
s=s+(float)k/n;
n++;
while(n<=E);
printf(「s=%f\n」, s2);
}

G. C語言考試試題答案

1. 11,12.
2. { ,}, 變數聲明,函數體.
3. int,float,double.
4. 存儲空間.
5. 將10賦值給變數s.
6. ;
7. 1,0.
8. 高

H. C語言試題C(速求)

一、 單項選擇題(共20分,每題2分)
1. 下列敘述正確的是__D______
A)不能使用do…while語句構成的循環
B)do…while語句構成的循環,必須用break語句才能退出
C)do…while語句構成的循環,當while語句中表達式值為非零時結束循環
D)do…while語句構成的循環,當while語句中的表達式值為零時結束循環
2. 下列描述中正確的是____A____
A)字元型數組中可以存放字元串
B)不可以對字元串進行整體輸入、輸出
C)可以對整型數組進行整體輸入、輸出
D)可以在賦值語句中通過賦值運算符"="對字元型數組進行整體賦值
3. 結構化程序設計強調的是____B_____
A)程序的執行的速度 B)程序的易讀性
C)程序的經濟性 D)程序的正確性
4. 一個良好的演算法由下面的基本結構組成,但不包括___D_______
A)順序結構 B)選擇結構C)循環結構D)跳轉結構
5. 以下敘述中正確的是____C____
A)C語言是一種低級語言
B)C語言執行效率比匯編語言更高
C)C語言以接近英語國家的自然語言和數學語言作為語言的表達形式
D)C語言出現的最晚,具有其他語言的一切優點
6. 在C語言中,引用數組元素時,其數組下標的數據類型允許是___C_____
A)字元 B)數組名
C)整型常量或整型表達式 D)邏輯表達式
7. 若有下面的程序段:
char s[]="china";
char *p;
p=s;
則下列敘述正確的是___C_____
A)*p與s相等
B)p與s[0]相等
C)p與s相等
D)*p與&s[0]相等
8. 在C語言中,不正確的int類型的常數是____全對____
A)-32778 B)32767 C)037 D)0xAFFFF
9. 在C語言中,退格符是 D
A)\n B)\t C)\f D)\b
10. 表達式X+=Y*Z+8等價於___A_____。
A)X=X+Y*Z+8
B)X=X*Y*Z+X*8
C)X=X*Y*8+X
D)X=Y+Z+8

二、判斷題。(共10分,每題1分)
1. C語言程序的編譯單位是函數。(√ )
2. #include「stu.h」和#include <stu.h>沒有區別。(X )
3. printf函數的輸出表列參數中%d表示按整數輸出。(√ )
4. 邏輯非運算的運算符是!。(√ )
5. 在定義全局變數時,static關鍵字不能省略。( x )
6. strlen()函數的作用是拷貝字元串。(x )
7. 計算時,表達式中的條件運算符優先於賦值運算符。(√ )
8. break命令可以用來跳出當前的switch結構。( √ )
9. 字元串不能作為函數參數使用。(X )
10. register變數是在內存中劃分的。( X) ---------cpu寄存區

I. C語言試題

1.60~69
<60
error!
2.**1**
**3**
3.C
4.sjhiu
5.2*x+4*y==90 或 4*x+2*y==90
6.C

J. 求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.-12D.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];<br>short y[4];<br>char 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++<=25&&b--<=2&&c++) 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;i<4;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,則執行表達式:--x&&y++後,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;<br>x=1,y=2,z=3; x+=y+=z;<br>printf("1:%d\n",z+=x>y?x++:y++);<br>x=0x02ff;y=0xff00;<br>printf("2:%d\n",(x&y)>>4|0x005f);<br>x=y=z=-1; ++x||++y&&++z;<br>printf("3:%d,%d,%d\n",x,y,z);<br>}
2、#define f(x) x*x
main()
{int a=6,b=2,c;<br>c=f(a+b)/f(b);<br>printf(「%d\n」,c);<br>}
3、fun(int k)
{ printf("%d",k);
if(k>0)
fun(k-1);
}
main( )
{ int w=5; fun(w); printf("\n"); }
4、#include
main()
{int x=1,y=0;<br>switch(x)<br>{ case 1:<br>switch(y)<br>{ case 0:printf(「first\n」);break;<br>case 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;<br>void fc();<br>if((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;<br>while((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;i<3; ① )
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;i<7;i+=2)
for(j=i+2;j<8; ① )
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(inta,float *p)
{……………}
則此函數的兩個參數類型分別是_______________ 、 _____________________。

8. 設int x,y,z=4;
x=y=++z;
x=(y>z)?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.(x>y)&(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;i<9;i++)
if(score>iMax)
{
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;i<10;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=panan( n);
if(s==1)printf(「yes\n」);
else printf(「no\n);
}
int panan(int n)
{
int k,j;
k=(int)sqrt((double)n);
for(j=2;j<=k,j++)
{
if(n%j==0) break;
}
if(j>k) 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; i<9;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; i<9; i++)
{
iMin=0; 改正為_______________________。
for (j=i+1; j<10;j++)
if(a[iMin]< iMin="j;">改正為_______________________。

if (iMin==i) 改正為_________________________。
{ iTemp=a;
a[iMin]=a; 改正為_________________________。
a[iMin]=iTemp;
}
}
for(i=0; i<10; i++)
printf(「%4d」, a):
}

4. 源程序為求平均值。
#include
void main(void)
{
int i, sum; 改正為____________________。
float avg;
int sc[10], *p=sc;
for (i=0, i<10; 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(t<1e-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; i<36; 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; i<3; i++)
for(j=0; j<3; 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語言真題及答案
http://jsj.lsxy.com/UploadFiles/20064222324839.rar