C語言模擬題

2022-12-01 10:00:02 字數 7740 閱讀 8131

第七屆全國資訊科技應用水平大賽模擬題

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...