本文目錄一覽:
C語言程序設計考試題
main函數
scanf函數,printf函數
-60
6 ,4, 2
, || , !
B 66
2 1
6
main
5
大一C語言期末考試求題庫
一、單項選擇題(共10題,每題2分,共20分。在備選答案中選擇一個最佳答案。多選、錯選、不選不得分)
1、不是C語言基本數據類型的是( )。
A、指針類型 B、整型
C、字符型 D、實型
2、設有:int a=3, b= 4, c= 5,x , y; 表達式0 (x=a)(y=b)的值為( )。
A、1 B、0 C、3 D、4
3、設有語句 int a=3 ; 則執行了語句 a+=6;後,變量a 的值為( )。
A、18 B、-3 C、9 D、12
4、執行以下程序段後,輸出的y值為( )
void main()
{ int a[]={2,4,6,8,10};
int y, *p;
p=a[0];
y=*p; printf(“%d”,y);
}
A、2 B、4 C、6 D、8
5、有定義語句:float a[4];則分配給數組a的內存空間為( )字節。
A、 20 B、 12 C、 16 C、10
6、以下描述錯誤的是( )。
A、break語句可用於while語句。
B、break語句和continue語句的作用是一樣的。
C、在循環語句中使用break語句是為了跳出循環,提前結束循環。
D、在循環語句中使用continue語句是為了結束本次循環,而不終止整個循環。
7、C語言中規定,if語句的嵌套結構中,else總是( )。
A、與最近的if 配對 B、與第一個if 配對
C、按縮進位置相同的if配對 D、與最近的且尚未配對的if 配對
8、說明語句“int (*p)( ); ”的含義是( ) 。
A、p是一個指向一維數組的指針變量。
B、p是指針變量,指向一個整型數據。
C、p是一個指向函數的指針,該函數返回一個int型數據。
D、以上都不對。
9、以下對二維數組c的正確聲明是 ( ) 。
A、int c[3][ ]; B、int c(3,4);
C、int c(2)(2); D、int c[3][2];
10、下述程序段執行後輸出結果為( )。
int x=100, y=200;
printf (“% d”, (x, y));
A、100 B、200 C、100,200 D、編譯出錯
二、填空題(共7題,共10空,每空1分,共10分。將答案填在題中橫線上)
1、C語言提供的三種邏輯運算符是 、 || 和!;
2、函數的返回值是通過函數中的 return 語句獲得的。
3、在”int a[ ][3]={{1},{3,2},{4,5,6},{0}};”定義後,a[2][2]的值為_6__ _;
4、對於”int *pa[5];” pa是一個具有5個元素的_數組指針_,每個元素是一個指向int型變量的__指針__;
5、單向鏈表的尾節點next指針應賦值__ NULL___;
6、在語句for(x=1,y=3;xy;y++)中循環體執行的次數為 0 。
7、int a[5];數組a的首地址為2000,則元素a[1]的地址為 2002 ,元素a[2]的地址為 2004 。
三、程序填空題(共2題,共5空,每空4分,共20分)
1、以下程序完成計算1-1/2+1/3-1/4+1/5+……前n 項和,請填空。
#include stdio.h
int main( )
{ int i, n, flag;
float sum;
scanf(“%d”, n);
flag= 1 ;
sum=0;
for(i=1;i=n; i++ )
{ sum+=(float)flag/i;
flag=-flag ;
}
printf(“%.3f\n”, sum);
}
2、以下程序的功能是從鍵盤輸入n個整數,統計其中正數、0、負數的個數,請填空。
#include stdio.h
void main( )
{int a, i, count1,count2,count3;
count1=count2=count3=0 ;
for(i=1;i=n;i++)
{ scanf(“%d”, a);
if(a0) count1++;
else if(a==0) count2++ ;
else count3++;
}
printf(“正數:d個,零:%d個,負數:%d個\n”, count1,count2,count3 );
}
四、運行程序結果題(共4題,每題6分,共24分)
1、寫出程序運行結果。
void main( )
{ int x=1,y=2,t;
int *p1,*p2;
p1=x; p2=y;
t=*p1;*p1=*p2;*p2=t;
printf(“x=%d,y=%d\n”,x,y);
}
運行結果為:
程序有錯,不能運行!或寫:
x=2,y=1
2、寫出程序運行結果。
#includestdio.h
int max(int a,int b)
{ int c;
c=ab?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=ab?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf(“max=%d\n”,max(a,b));
printf(“min=%d\n”,min(a,b));
}
運行結果為:
程序有錯,不能運行!或寫:
max=6
min=2
3、寫出程序運行結果。
#include stdio.h
void main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,sum=0;
for (i=0;i3;i++)
for(j=0;j3;j++)
if(i==j) sum=sum+a[i][j];
printf(“sum=%d\n”,sum);
}
運行結果為:
程序有錯,不能運行!或寫:
sum=15
4、寫出程序運行結果。
void main( )
{ int n,f;
n=1;
while(n=10)
{ f=f*n;
n+=2;
}
printf(“f=%d\n”,f);
}
運行結果為:
程序有錯,不能運行!或寫:
f=不確定
五、程序設計題(共2題,每題13分,共26分)
1、將一個數組按逆序存放,如元素1、2、3、4、5,按逆序存放後為5、4、3、2、1。
C語言題庫,求發一份
單選題
1. 以下敘述中正確的是(1)。
A.若e1、e2為變量,e為表達式,則
e1=e2=e使得e1、e2都具有表達式e的值 。
B.程序中不能定義與庫函數名同名的變量。
C.一個C源程序可放在多個文件中,但
一個函數不能跨放在兩個不同的文件中。
D.C語言編譯系統以函數為單位編譯源程序。
2. 若a,b,c都是實型變量,則下列語句中除 (2) 之外,都可能得不到正確的計算結果。
A.if(b*b-4*a*c==0) x1=x2=-b/(2*a);
else x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a);
B.b=2.0e38+1.0-2.0e38;
C.a=456*768/2;
D.double define=1.0;
3. 以下正確的常量是(3 )。
A.‘077’ B.‘\0x89’ C.3.14u D.‘\012’
4. 若已有聲明“float x= -1234.5678; int m,n=4;”則執行“m=printf(“\n%8.3f\n”,x)/n;”語句後,
變量m的值是 (4) 。
A. 2 B. 3 C. 4 D. 5
5. 若已有聲明“int x1; float x2; long x3; char x4;”,且以下選項均出現在switch語句中,其中正確
的是 (5) 。
A. case 1.1: scanf(“%d”,x1);break;
B. case 1+2: scanf(“%f”,x2); break;
C. case ‘x’:
case ‘y’-1: scanf(“%ld”,x3); break;
D. case x4: scanf(“%c”,x4); break;
6. 33.以下表達式中,能夠作為“if(e) 語句”中判斷條件表達式e 的是 (6) 。
A. x==++(x+1) B. x+=++x||x++ C. x+1=z D. x%2.0!=0
7. 以下局部變量聲明中,正確的是 (7) 。
A.int x=0, void=1; B.int x=1,y=2x;
C.int x=2,y=sqrt(x); D.int x=sqrt(y),y=4;
8. 在以下語句中,正確的是 (8) 。
A.if(ab)m=a;n=b;else m=b;n=a;
B.if(ab){m=a;n=b;else m=b;n=a;}
C.if(ab)m=a,n=b;else m=b,n=a;
D.if(ab){m=a;n=b;}else(a=b){m=b;n=a;}
9.24.已知有聲明:“char c=‘1’ ; int x=300 ; float t=35000 ; double d=3.1234567e10 ;”,則以下表達式
求值時除 (9 ) 外,其結果都可能是不準確的。
A. x=t/c B. t=d/x C. t=d/1e5f D. t=x+c
10.若有聲明“int i,k=1; unsigned j;”,則下列語句執行時會出現無限循環的語句
是 (10) 。
A.for(j=15;j0;j-=2) k++;
B.for(j=0;j15;j+=2) k++;
C.for(i=0;i15;i+=2) k++;
D.for(i=15;i0;i-=2) k++;
11.已有聲明“int x=2,y=1,z=0;”,以下表達式的值不為0的是 (11) 。
A. x==(x=0,y=1,z=2)
B. zyx
C. xy==1
D. x(y=2)
12.若e1、e2和e3是表達式,以下選項中與語句while(e1){e2,e3;}功能等價的語句是 (12 ) 。
A. for( ;e1;e3)e2; B. for( ;e1;e2)e3; C. for(e1;e2;e3); D. for(e1; e2, e3; );
13.已有聲明“int x=3;”,以下選項中與“x+=x =x+1”功能不等價的表達式是 (13 ) 。
A.x=x+(x=xx+1) B.x=x+(x=x(x+1)) C.x=x+(x=xx1) D.x=x(x+1), x=x+x
14.若已有聲明“int a=2; ”,則執行語句“printf(“%d”, a, a+1 );”後的輸出結果是 (14) 。
A.語法錯 B. 2,3 C. 2 D. 3
15.語句“if (!n) n++;”中的“!n”等價於如下 (15) 條件的判定。
A.n==0 B.n!=0 C.n0 D.n0
16.若已有聲明“int a=1; ”,則以下表達式中錯誤的是 (16 ) 。
A.-a++ B.+a– C.–a D.++-a
17.下列 (17) C語言表達式能正確表達數學計算式1÷× 2xy。
A. 1/sqrt(2*3.14)*2*pow(x,y) B.1.0/sqrt(2)*2*x**y
C. 1.0/sqrt(6.28)*2x^y D.1/6.28^0.5*2*pow(x,y)
18. 已有聲明“int a=3,b=3,c=2;”,以下表達式中值為0的是 (18) 。
A. !a!bc B. !a || !b || c C. a==b b=c D. a=b bc
19.
36.若有: int w=1 , x=2 , y=3 , z=4; 則表達式 wx?x–:yz?y–:++z 的值為 (19 ) 。
A. 4 B. 3 C. 2 D. 1
20. 已知某程序中有以下片斷:
#define p 2.5
main( )
{ float x=p;
}
則main函數中標識符p代表一個 (20) 。
A. float型變量 B. double 型變量 C. float型常量 D. double 型常量
20.
填空題
1.21.設有如下程序段:
int a=2, b, c=5 ;
scanf( “%d” , b) ;
b = c– || scanf (“%d” , c ) a++;
執行該程序段時,若從鍵盤上輸入的數據是 4ƀ3 (ƀ代表空格鍵) , 則變量c 的值為 (21) 。
2. signed和unsigned只能用於聲明int型變量和 (22) 型變量。
3.代數式“||”的C語言表達式是 (23) 。
4.已有聲明“int a=-13,n=7;”,表達式“a%=n%=4”求值後變量a的值為 (24) 。
5.已有聲明“unsigned int a=30; ” ,那麼 –a 的值為___(25)____。
6.
如下程序執行後的輸出是____(26)____。
#includestdio.h
main ( )
{
int i=1,m=0;
switch ( i )
{
case 1 :
case 2 : m++;
case 3 : m++;
}
printf ( “%d” ,m);
}
7.C語言的三個邏輯運算符(!、、||)中,優先級高於算術運算符的是
(27) 。
8.已知sizeof(int)的值為2,執行如下程序後輸出結果為 (28) 。
main()
{ int a,b;
a=65536;
b=32767+1;
printf(“%d %d\n”,a,b);
}
9.若有聲明“int a=3,b=0,c=5;”, 則表達式 !a+b+c-1b+c/2 的值是 (29) 。
10.若有聲明“int x=1,y=2;” ,則表達式 ++x, x+y++ 的值是 (30) 。
三、閱讀程序題
1.在PC機的TC中執行以下程序後的輸出是: (31) 。
main()
{
unsigned x=0x7f39;
int y;
char c;
c=x;
x+=0307;
y=x;
printf(“%d,%x,%c”,x,y,c);
}
2.以下程序運行後的輸出結果是 (32) 。
#includestdio.h
main ( )
{ int x=30, y=45;
while(x!=y)
if(xy)x-=y;
else y-=x;
printf(“%d”, x);
}
3.
以下程序運行後輸出結果的第一行是 (33) ,第二行是 (34) 。
#includestdio.h
#includemath.h
void main()
{ int a=0x65,b,c,count=0;
b=a;
while(b0)
{ b=b/8;
count++;
}
printf(“%d\n”,count);
while(count0)
{ c=pow(8,count-1);
printf(“%d”,a/c);
a=a%c;
count–;
}
}
4.以下程序運行時輸出結果是 (35) 。
#include stdio.h
main()
{
int i,x=3,y=5;
for(i=0;i3;i++)
switch(y%x)
{
case 0: printf(“%d”,y);
case 1: printf(“%d”,y–);break;
case 2: printf(“%d”,–y);break;
}
}
5.以下程序執行後,輸出結果的第一行是 (36) ,第二行是 _(37)______。
#define N 100
main()
{ int i=0,sum=0;
do
{ if(i==(i/2)*2)
continue;
sum++;
if(sum3)
break;
}while(++iN);
printf(“%d \n %d”, sum,i);
}
四、完善程序題
1.下列程序的功能是按從鍵盤上輸入的整數m,判斷2m -1是否為素數,若為素數再求2m -1的反序數。例如:m為17,217 –1(131071)是素數,其反序數是170131。
#include stdio.h
(38)
main()
{
int m,j;
long q,k1,k2=0,k3;
scanf(“%d”,m);
k3=k1=pow(2,m)-1;
q=sqrt(k1);
for(j=2;j=q;j++)
if( (39) ) break;
if(jq)
{ while(k30)
{ k2=k2*10+ (40) ;
k3/=10;
}
printf(“m=%d\npow(2,m)-1=%ld is a prime.\nreverse order %ld\n”,m,k1,k2);
}
else
printf(“m=%d isn’t a prime.\n”,m);
}
2. 以下程序找到並輸出所有滿足給定條件的四位十進制表示的正整數:該數是某個數的平方、該數的後二位是25、組成該整數的各位數字中有兩位是2。例如:1225是滿足所給條件的四位正整數(352=1225)。
#includestdio.h
#includemath.h
main()
{ long i,j,s,d=0;
for(i=1000;i10000;i++)
{ (41) ;
j= (42) ;
if(i==j*j i%100==25)
{ s=i;
while(s0)
{ if( (43) )d++;
s=s/10;
}
if(d==2) printf(“\n %d”,i);
}
}
}
3..下列程序計算下列數學函數展開式的近似值,累加運算在最後一項的絕對值小於10-6時停止。
程序運行時從鍵盤上分別三個實數-1.0、0.5、1.0,作為x的值。
#include stdio.h
#include math.h
#define EPS 1.0e-6
main()
{ double x,n,tn,ft,sn,xn;
int i;
for(i=0;i3;i++)
{ (44) ;
ft=1.0;
scanf(“%lf”,x);
sn=xn=x;
do{
xn=xn*x*x;
ft=ft*(2*n-3)/(2*n-2);
tn=ft*xn/ (45) ;
sn=sn+tn;
n=n+1;
}while( (46) );
printf(“f(%lf)=%0.6lf\n”,x,sn);
}
}
《C語言程序設計》試卷答題紙
(本試卷滿分100分)
系科_____________學號_____________姓名_____________成績____________
單項選擇題得分 填空題得分 閱讀程序題得分 完善程序題得分 總分
一 、單項選擇題
(1) (2) (3) (4) (5)
(6) (7) (8) (9) (10)
(11) (12) (13) (14) (15)
(16) (17) (18) (19) (20)
二、填空題
(21) (22)
(23) (24)
(25) (26)
(27) (28)
(29) (30)
三、閱讀程序題
(31) (32)
(33) (34)
(35) (36)
(37
四、完善程序題
(38) (39)
(40) (41)
(42) (43)
(44) (45)
(46)
《C語言程序設計》試卷參考答案
(本試卷滿分100分)
一 、單項選擇題
(1)C (2)D (3)D (4)A (5) B
(6)B (7)C (8)C (9)D (10)A
(11)C (12)A (13)A (14)C (15)A
(16)D (17)A (18)A (19)B (20)D
二、填空題
(21) 4 (22) char
(23) fabs(exp(sqrt(1+sin(x)))) (24) -1
(25) 65506 (26) 2
(27) ! (28) 0 -32768
(29) 1 (30) 4
三、閱讀程序題
(31) -32768, 8000, 9 (32) 15
(33) 3 (34) 145
(35) 4433 (36) 4
(37) 7
四、完善程序題
(38) #include math.h (39) k1%j==0
(40) k3%10 (41) d=0
(42) sqrt(i) (43) s%10==2
(44) n=2.0 (45) (2*n-1)
(46) fabs(tn)EPS
十五道簡單的C語言程序設計送分題之十三。
用Switch就可以解決了啊,具體打法忘了.每個條件後面要加Break,然後給條件就是了:X=0X2;X=2X4;X=4X6.大概就是這個樣子吧,畢竟全部說出來了就沒意思了.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240472.html