c語言筆試試題 - 下載本文

每個5分共100分。錯選、多選、少選或不選均不得分。

1.[單選題]一個C程序的執行是從( ) A:本程序的main函數開始,到main函數結束

B:本程序文件的第一個函數開始,到本程序文件的最后一個函數結束 C:本程序的main函數開始,到本程序文件的最后一個函數結束 D:本程序文件的第一個函數開始,到本程序main函數結束 2.[單選題]在C語言中,要求運算數必須是整型的運算符是( )

A:/ B:++ C:!= D:%

3.[單選題]C語言中,邏輯“真”等價于( )

A:大于零的數 B:大于零的整數 C:非零的數 D:非零的整數

4.[單選題]若希望當A的值為奇數時,表達式的值為“真”,A的值為偶數時,表達式的值為“假”。則以下不能滿足要求的

表達式為( ) A:A%2 == 1 B:! (A%2==0) C:! (A%2) D:A%2

5.[單選題]以下程序的運行結果是( )。

int main( void ){ int m = 5;

if ( m++ > 5) printf(“%d\\n”, m);

else printf(“%d\\n”, --m);

} A:4 B:5 C:6 D:7

6.[單選題]以下對一維整型數組a的正確說明是( )

A:int a(10) B:int n = 10, a[n]

C:int n scanf(“%d”, &n)

int a[n] D:#define SIZE 10 int a[SIZE]

7.[單選題]若有說明:int a[3][4];則對a數組元素的非法引用是( )

A:a[0][2*1] B:a[1][3]

C:a[4-2][0] D:a[0][4]

8.[單選題]若二維數組a有m列,則計算任一元素a[i][j]在數組中位置的公式為( )

A:i * m + j B:j * m + i C:i * m + j - 1 D:i * m + j + 1

9.[單選題]以下程序的功能是將字符串s中所有的字符c刪除,那么空白處缺少的語句為:( )。

#include int main(void)

{ char s[80] ; int i, j ; gets(s) ;

for ( i = j = 0 ; s [i] != ?\\0? ; i++ )

if ( s [i] != ?c? )

;

s [ j ] = ?\\0? ; puts ( s ) ; return 0 ;

}

A: s [ j++] = s [ i ] B:s [ ++j ] = s [ i ] C:s [ j ] = s [ i ]; j++ D:s [ j ] = s [ i ]

10.[單選題]下面程序的功能是將已按升序排好序的兩個字符串a和b中的字符,按升序歸并到字符串c中,請為程序中

的空白處選擇適當的語句。 第一空答案( )

#include int main(void)

{

char a[ ] = “acegikm”; char b[ ] = “bdfhjlnpq”;

char c[80], *p; int i = 0, j= 0, k = 0; while( a[i] != ?\\0? && b[j] != ?\\0? )

{

if ( a[i] < b[j] ) { ( ① ) }

else { ( ② ) }

k++; } c[k] = ?\\0?; if ( ③ ) p = b + j; else p = a + i; strcat ( c , p );

puts ( c );

}

A:c[k] = a[i]; i++ B:c[k] = b[j]; i++ C:c[k] = a[i]; j++ D:c[k] = a[j]; j++

11.[單選題]下面程序的功能是將已按升序排好序的兩個字符串a和b中的字符,按升序歸并到字符串c中,請為程序中

的空白處選擇適當的語句。第二空答案( )

#include int main(void)

{

char a[ ] = “acegikm”; char b[ ] = “bdfhjlnpq”;

char c[80], *p; int i = 0, j= 0, k = 0; while( a[i] != ?\\0? && b[j] != ?\\0? )

{

if ( a[i] < b[j] ) { ( ① ) }

else { ( ② ) }

k++; } c[k] = ?\\0?; if ( ③ ) p = b + j; else p = a + i; strcat ( c , p ); puts ( c );

}

A:c[k] = a[i]; i++ B:c[k] = b[j]; i++ C:c[k] = a[i]; j++ D:c[k] = b[j]; j++

12.[單選題]在一個C源程序文件中,若要定義一個只允許本源文件中所有函數使用的全局變量,則該變量需要使用的存

儲類別是( ) A:extern B:register C:auto D:static

13.[單選題]以下程序的正確運行結果是( )。

#include int f(int a); int main(void)

{ int a = 2, i;

for( i = 0; i < 3; i++ ) printf(“M”,f(a));

} int f(int a)

{ int b = 0; static int c = 3; b++; c++; return(a+b+c);

} A:7 7 7 B:7 10 13 C:7 9 11 D:7 8 9

14.[單選題]以下程序的運行結果為( )。

void sub(int x, int y, int *z)

{ *z = y – x ; } int main(void)

{ int a,b,c ; sub(10, 5, &a) ; sub(7, a, &b) ; sub(a, b, &c) ;

printf( “M,M, M\\n”,a,b,c);

} A:5, 2, 3 B:-5, -12, -7 C:-5, -12, -17 D:5, -2, -7

15.[單選題]有如下語句int a = 10, b = 20, *p1, *p2; p1 = &a; p2 = &b;變量與指針的關系如圖1所示;若要實現圖2

所示的存儲結構,可選用的賦值語句為( )

A:*p1 = *p2 B:p1 = p2 C:p1 = *p2 D:*p1 = p2

16.[單選題]若已建立下面的鏈表結構,指針p、q分別指向圖中所示結點,則不能將q所指的結點插入到鏈表末尾的一

組語句是( )

A:q -> next = NULL; p = p -> next; p -> next = q B:p = p -> next; q -> next = p -> next; p -> next = q

C:p = p -> next; q -> next = p; p -> next = q D:p = (*p).next; (*q).next = (*p).next; (*p).next = q

17.[單選題]以下程序的功能是:讀入一行字符(如:a,b,… y,z),按輸入時的逆序建立一個鏈接式的結點序列,即先輸入的位于鏈表尾(如下圖),然后再按輸入的相反順序輸出,并釋放全部結點。請在空白處為程序選擇適當的代碼。

第一空答案( )

#include

#define getnode(type) ① malloc(sizeof(type))

int main(void)

{ struct node{ char info; struct node *link;

}*top,*p; char c; top = NULL;

while( ( c = getchar( ) ② )

{

p = getnode ( struct node );

p -> info = c; p -> link = top;

top = p;

} while ( top )

{ ③ ; top = top -> link; putchar ( p -> info );

free ( p );

} } A:(type) B:(type *) C:type D:type *

18.[單選題]以下程序的功能是:讀入一行字符(如:a,b,… y,z),按輸入時的逆序建立一個鏈接式的結點序列,即先輸入的位于鏈表尾(如下圖),然后再按輸入的相反順序輸出,并釋放全部結點。請在空白處為程序選擇適當的代碼。

第二空答案( )

#include

#define getnode(type) ① malloc(sizeof(type))

int main(void)

{ struct node{ char info; struct node *link;

}*top,*p; char c; top = NULL;

while( ( c = getchar( ) ② )

{

p = getnode ( struct node );





pk10冠军百期错一 体彩浙江十一选五走势图 股票基础知识的书推 燕赵风采20选5最新开奖查询 欧美成人片女星名单 真人李逵劈鱼游戏下载 好玩可以的棋牌游戏 下载成都麻将血战到 泳坛夺金游戏规则 北京赛车pk开奖直播手机版 广东风采36选7开 福建体彩22选5开奖公告 精准一波中特 850棋牌类游戏 重庆幸运农场中奖规则 十河北十一选五走势 12.31开拓者vs凯尔特人