第七屆全國資訊科技應用水平大賽模擬題
c語言程式設計
注:模擬題題量總計88道,其中單選題60道,每道題1分;多選題20道,每道題2分;程式填充題6道,每道題5分;程式設計操作題2 道,每道題10分。試卷滿分為150分,完成時間為180分鐘。
此模擬題僅供參考,具體題型、題量、分值分配與試題難度以實際預賽題為準。
單選題(共60題,每題1分,共60分)
1. 下列符號串中,屬於c語言合法識別符號的個數為(c )。
_1_2_3,a-b-c,float,9cd,a3b4
a:1b:2c:3
d:42. 下列能為字元變數 a 賦值的是:char a= (a )。
a:'ab'
b:"a"
c:'\0'
d:"\0"
3. 在下列字串行中,合法的識別符號是(b )。
b:stud_100
c:$water.1
d:88sum
4. 下列用於printf函式的控制字元常量中,代表tab的字元常量是(b )。
a:'\b'
b:'\t'
c:'\r'
d:'\f'
5. 下列用於printf函式的控制字元常量中,代表退格的字元常量是(c )。
a:'\b'
b:'\t'
c:'\r'
d:'\n'
6. 如有以下程式:unsigned int a=6; int b=-20; char c; c=(a+b>6);
則c的值為(b )。
a:6b:-14
c:1d:07. 關於c語言,以下不正確的敘述是(b )。
a:在c語言程式設計中,逗號運算子的優先順序最低
b:在c語言程式設計中,var和var是兩個相同的變數
c:c語言也支援過載
d:此處的兩個語句inta; a=-13.06;在程式編譯中將會提示出錯
8. 若有定義:
int a=2,*p;
float x=1, y=2;
char e=『w』;
則以下用法不正確的是( )。
a:printf("%c",e+a);
b:p=&x;
c:a *=y+x;
d:x=y=e;
9. int x=20; printf("%d\n",~x);
以上程式片段的輸出是( )。
a:235
b:-21
c:-20
d:-11
10. 在c語言中,要求運算數必須是整型的運算子是( )。
a:/b:++
c:!=
d:%11. 若有定義:int a=7;float x=2.5,y=4.7;則表示式x+a%3*(int)(x+y)%2/4的值是(結果保留兩位小數)( )。
a:2.50
b:2.75
c:3.50
d:0.00
12. 以下運算子中優先順序最低的是( )。
a:&&
b:&c:||
d:|13. 設有定義語句:char c1=1,c2=1;,則以下表示式中值為零的是( )。
a:c1^c2
b:c1&c2
c:~c2
d:c1|c2
14. 以下程式的輸出結果是
#include <>
void main()
( )。
a:2 11
b:11 2
c:7 13
d:13 7
15. 如果int i = 4, 則printf("%d", -i-- )的輸出結果是( ),i的值是( )。
a:-4 3
b:-3 3
c:-3 4
d:-4 4
16. 若x=2,y=3則x&y的結果是( )。
a:1b:2
c:3d:5
17. 下列程式的輸出是( )。
main()
a:15
b:25
c:30
d:40
18. 若x,i,j和k都是int型變數,則計算下面表示式後,x的值為( )。
x=(i=4,j=16,k=32)
a:4b:16
c:32
d:其他值
19. 假設所有變數均為整型,則表示式(a=2,b=5,b++,a+b)的值是( )。
a:7b:8
c:6d:2
20. 以下程式執行後的輸出結果是( )。
main()
a:90
b:50 90
c:50
d:其他
21. 以下程式的執行結果是( )。
void main()
a:0b:1
c:2d:3
22. 以下程式的輸出是( )。
#include <>
main( )
}a:*###
b:**##
c:***#
d:****#
23. 有如下程式片段:
int i = 0;
while(i++ <= 2);
printf("%d", i--);
則正確的執行結果是 ( )。
a:2b:3
c:4d:以上都不是
24. 有以下程式段
main()
while(i!=n);
printf(「%d」,sum);
}若使程式的輸出值為15,則應該從鍵盤輸入的n的值是 ( )。
a:1b:3
c:5d:7
25. 以下程式的輸出是( )。
#include<>
void fun(int *p)
void main()
a:5b:6c:10
d:11
26. 以下關於函式的說法中正確的是 ( )。
a:定義函式時,形參型別說明可放在函式體內
b:return語句後邊的值不能為表示式
c:如果函式型別與返回值型別不一致,以函式型別為準
d:如果形參與實參的型別不一致,以實參為準
27. 已知有定義:int *p(); 則以下說法正確的是 ( )。
a:指向int型的指標變數
b:int型的指標陣列
c:乙個函式,該函式的返回值是指向int型的指標變數
d:乙個指向函式的指標變數,該函式的返回值為int型
28. 若有如下程式:
void s(char *m,int n)
void main()
則程式執行後的輸出結果是 ( )。
a:e,e,b,e
b:e,e,b,f
c:e,e,e,e
d:e,e,b,e
29. c語言規定函式返回值的型別由 ( )。
a:在定義時所指定的函式型別所決定
b:呼叫該函式時的主調函式型別所決定
c:return語句中的表示式型別所決定
d:呼叫該函式時系統臨時決定
30. 要在c語言中求正弦30度的值,可以呼叫庫函式,可用格式為 ( )。
a:sin(30)
b:sin(30.0)
c:sin((double)30)
d:sin(3.1415/6)
31. 在c語言程式設計中,簡單變數作為實參時,它和對應形參之間的資料的傳遞方式是 ( )。
a:位址傳遞
b:單向值傳遞
c:由實參傳給形參,再由形參傳給實參
d:由使用者指定傳遞方式
32. 以下程式的輸出為( )。
int a=2;
int f(int *a)
void main()
s+=f(&a);
printf("%d %d\n",a,s);
}a:2 7
b:2 10
c:3 7
d:3 11
33. 以下程式輸出結果是( )。
#include <>
int *fun()
void main()
}a:輸出0 0 0 0
b:輸出0 1 2 3
c:輸出1 1 1 1
d:輸出不確定值
34. 以下程式的執行結果是( )。
void fun(int *n)
void main()
a:8b:10
c:11
d:15
35. 下面對typedef的敘述中不正確的是 ( )。
a:用typedef可以定義各種型別名,但不能用來定義變數
b:typedef和#define都是在預編譯時處理的
c:用typedef只是將已存在的型別用乙個新的識別符號來代表
d:使用typedef有利於程式的通用和移植
36. 要使用記憶體分配函式malloc,需要引入的標頭檔案是 ( )。
37. 以下巨集定義中,不會引起二義性的巨集個數為( )。
1)#define power(x) x*x
2) #define power(x) (x)*(x)
3) #define power(x) (x*x)
4) #define power(x) ((x)*(x))
a:1個
b:2個
c:3個
d:4個
38. 若有二維陣列定義語句:int a[4][5]; 則下面對元素a[2][3]不正確的引用方式是( )。
a:*(&a[2][3])
b:*(a+5*2+3)
c:*(a[2]+3)
d:*(*(a+2)+3)
39. 若二維陣列定義為a[m][n],則在a[i][j]之前的元素個數為 ( )。
a:j*m+i
b:i*m+j
c:i*m+j-1
d:j*m+i-1
40. 有字元陣列a[10]=和b[10]=,則以下正確的輸出語句是 ( )。
a:puts(a,b);
b:printf("%s %s\n",a,b);
c:putchar(a,b);
d:puts(a);puts(b);
41. 下列程式的輸出結果是( )。
#include <>
#include <>
void main()
a:xyabcab
b:abcabz
c:ababcz
d:xycdbcd
42. 以下程式執行後輸出結果是( )。
void main()
a:5 5
b:6 6
c:6 10
d:10 10
43. 以下程式的輸出結果是( )。
void main()
; printf("%d\n",strlen(p[4]));
}a:2
b:3c:4
d:編譯出錯
44. 已知有以下的說明,
int a=; 那麼a[*(a+a[3])]的值為 ( )。
a:5b:0
c:4d:7
45. 以下程式輸出結果是( )。
#include <>
main()
,(*p)[2];
p=a;
p++;
printf("%d\n",**p );
}a:2
b:3c:4
d:以上都不對
46. 設char ch,str[4],*strp;,則正確的賦值語句是 ( )。
a:ch="cba";
b:str="cba";
c:strp="cba";
d:*strp="cba";
47. 下面程式的執行結果是( )。
#include <>
#include <>
fun(char *w,int n)
}a:language
b:language
c:lang
d:language
49. struct s1
t=,*p;
p=&t;
則輸出為x的語句是( )。
a:printf(「%c\n」,p->
b:printf(「%c\n」,(*p).a[2])
c:printf(「%c\n」,p->a[3]);
d:printf(「%c\n」,(*p).
50. 以下程式的輸出是( )。
#include <>
main()cnum[2]=;
printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);
}a:0
b:1c:3
d:651. 以下對age的非法引用是( )。
struct student
stu1,*p;
p=&stu1;
c:p->age
d:(*p).age
52. 以下程式的輸出是( )。
#include <>
union myun
u;int k;
}a;void main()
a:4b:5
c:6d:0
53. 若要用fopen函式開啟乙個二進位制檔案,該檔案要既能讀也能寫,當檔案不存在時新建檔案,則檔案開啟方式字串應是( )。
a:"ab+"
b:"rb+"
c:"wb+"
d:"ab"
54. 若執行fopen函式時發生錯誤,則函式的返回值是 ( )。
a:位址值
b:0c:1
d:eof
55. 要開啟檔案c:\user\用於追加資料,正確的語句是( )。
a:fp=fopen("c:\turboc2\","r");
b:fp=fopen("c:\\turboc2\","r");
c:fp=fopen("c:\\turboc2\\","a+");
d:fp=fopen("c:\turboc2\","a+");
56. 在執行fopen函式時,ferror函式的初值是 ( )。
a:true
b:-1
c:1d:0
57. #include <>
main()
以上程式執行後,檔案中的內容為 ( )。
a:hellong
b:beijing hello
c:beijinhello
d:hello
58. 若fp為檔案指標,且檔案已正確開啟,i為整型資料,以下語句的輸出結果是( )。
fseek(fp,0,seek_end);
i=ftell(fp);
printf("i=%d\n",i);
a:fp所指的檔案記錄長度
b:fp所指的檔案長度,以位元組為單位
c:fp所指的檔案長度,以位元為單位
d:fp所指的檔案當前位置,以位元組為單位
59. 函式呼叫語句:fseek(fp,-20l,2);的含義是 ( )。
a:將檔案位置指標移到距離檔案頭20個位元組處
b:將檔案位置指標從當前位置向後移動20個位元組
c:將檔案位置指標從檔案末尾處後退20個位元組
d:將檔案位置指標移到離當前位置20個位元組處
60. 若將檔案指標的讀寫位置指標移動到距離檔案頭200個位元組的位置,對應正確的操作是 ( )。
a:fseek ( fp, 200, seek_set )
b:fseek ( fp, 200, seek_cur )
c:fseek ( fp, 200, seek_end )
d:ftell ( 200 )
C語言筆試模擬題 1
一 選擇題 1 已知一棵二叉樹前序遍歷和中序遍歷分別為abdegcfh和dbgeachf,則該二叉樹的後序遍歷為 a gedhfbca b dgebhfca c abcdefgh d acbfedhg 正確答案 b 2 樹是結點的集合,它的根結點數目是 a 有且只有1 b 1或多於1 c 0或1 d...
c語言上機題
簡單計算 5 請編寫乙個函式fun,它的功能是 計算n門課程的平均分,計算結果作為函式值返回。float fun float a,int n 13 函式求出w的後n 1位的數作為函式值返回。unsigned fun unsigned w w w k return w 21 請編寫函式fun,它的功能...
C語言程式設計題
第一題 將兩個兩位數a,b合併成為乙個四位數,合併規則為 a的十位數作為新數的千位,b的十位數做百位,a的個位做十位,b的個位做個位。a,b從鍵盤輸入,例如輸入23,45,則輸出2435。第二題 從鍵盤輸入乙個雙精度數,保留其小數點後兩位,對第三位進行四捨五入,例如輸入12.3456,則輸出12.3...