1.在一個C程序中()
A. main函數必須出現在所有函數之前
B. main函數可以出現在任何地方
C. main函數必須出現在所有函數之后
D. main 函數必須出現在固定位置
B
2.下列不合法的用戶標識符是()
A. j2_KEY
B. Double
C. 4d_a
D.8
C
3,在“文件包含”預處理語句的使用過程中,當#include后面的文件名用雙引號括起來時,尋找被包含文件的方式是()。
A.直接按系統設定的標準方式搜索目錄
B.先在源程序所在目錄搜索,再按系統設定的標準方式搜索
C. 僅僅搜索源程序所在目錄
D.僅僅搜索當前目錄
B
4.下面合法的C語言字符常量是()
A. ‘t’
B. “A”
C. ‘xx’
D.A
A
5.下列選項中用于判斷ch是否是字符的表達式是()
A.(‘a’<=ch<=‘z)I(‘A’<=ch<=Z’)
B. (‘a’<= ch <=‘z’) && (‘A’<= ch<=‘Z’)
C. (ch >=‘a’&& ch <= ‘z’) && (ch >= ‘A’ && ch <= ‘Z’)
D.(ch>=‘a’ &&ch <=‘z’)Il (ch>=‘A’ && ch<=‘Z’)
D
6.若a為int類型,且其值為3,則執行完表達式a+= a-= a*a后,a 的值是()
A.-3
B.9
C.-12
D.6
C
- 設a 為整型變量,不能正確表達數學關系:10<a<15的 C 語言表達式是()
A. 10<a<15
B.a=-=11ll a=-=12 ll a=-=13 ll a==14
C. a>10 && a<15
D. !(a<=10) && !(a>=15)
A
8,設ch是char型變量且為’A’,經過下面的表達式運算后ch的值是()
ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch;
A.A
B. a
C.Z
D.zment
B
- 下列字符中,錯誤的轉義字符是()
A.‘’
B. ‘\n’
C. ‘’’
D. ‘\091’
D
10,閱讀以下程序段,如果從鍵盤上輸入abc<回車>,則程序的運行結果是()
char ch;scanf("%3c",&ch);printf("%c",ch);
A.a
B.b
C.c
D.語法出錯
A
- 若a、b、cl、c2、x、y均是整型變量,以下正確的switch語句是()
A.switch(a+b);{ case 1: y=a+b; break;case 0:y=a-b; break;)
B.
switch(a*a+b**b)
case 3:
case 1: y=a+b; break;
case 3: y=b-a, break;}
C
switch a{
case c1: y=a-b; break;
case c2: x=a*b; break;
default: x=a+b; }
D
switch(a-b){
default: y=a*b; break;
case 3: case 4: x=a+b; break;
case 10: case 11: y=a-b; break;)
D
12.有以下程序段
int n,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while (t!=n);
為使此程序段不陷入死循環,從鍵盤輸入的數據應該是()
A.任意正奇數
B.任意負偶數
C.任意正偶數
D.任意負奇數
D
- 以下定義語句中不正確的是()
A. double x[5]=(2.0, 4.0, 6.0, 8.0, 10.0);
B. char c20=("x10’, "xa’, "x8’);
C. char c1[]=(‘1’, ‘2’, ‘3’, ‘4’, ‘5’);
D. int y[5]={0,1,3,5,7,9);
D
14.以下能正確定義數組并正確賦初值的語句是()
A. int n=5,a[n];
B. int a[1][2]=((1),(3}};
C. char [s2]=[‘t’,‘e’,‘s’,‘t’ ]
D. char s1[10];s1=“test”;
C
- 下面是對s的初始化,其中不正確的是()。
A. char s[5]=(“abc”);
B. char s[5]=(‘a’, ‘b’, ‘c’);\
C. char s[5]=“”;
D. char s[5)=“abedef”;
D
16,在一個C源程序文件中,若要定義一個只允許本源文件中所有函數使用的全局變量,則該變量需要使用的存儲類別是()
A. extern
B. register
C. auto
D. static
D
17.下列函數定義中,會出現編譯錯誤的是()。
A.
int max(int x, int y, int *z)
{*z=x>y? x:y;return *z;
}
B.
int max(int x, y)
{ int z;z = x>y? x:y;return z;
}
C.
int max(int x, int y)
{
int z;
z=x>y?x:y;
return (z);
}
D.
int max(int x, int y)
{return (x>y? x:y);
}
B
18.若p1、p2都是整型指針,p1已經指向變量x,要使p2也指向x,()是正確的。
A. p2=pl
B.p2=**pl
C.p2=&pl
D. p2=*pl
A
- 若有定義:int *p[3];則以下敘述中正確的是()。
A.定義了一個基類型為int的指針變量p,該變量具有三個指針
B.定義了一個指針數組p.該數組含有三個元素,每個元素都是基類型為int的指針
C.定義了一個名為*p的整型數組,該數組含有三個int類型元素
D.定義了一個可指向一維數組的指針變量p,所指一維數組應具有三個int類型元素
B
20.若有以下說明和定義語句,則變量m在內存中所占的字節個數是()。
union aa{float x; float y; char c[6];);
struct stfunion aa; float w[5]; double ave;)m;
A. 42
B.34
C.30
D. 26
B
二、程序閱讀題(本大題共5小題,每小題6分,共30分。請將程序的運行結構填寫在答題紙的相應位置上。)
1_________
. #include <stdio.h>
int main(){int score, bonus;score = 60;bonus = 2;switch(bonus){case 1:score += 10;case 2:score += 20;case 3:score += 30;}printf("%d", score);return 0;
}
110
2._________
#include <stdio.h>
typedef struct date
{int year;int month;int day;}DATE;
void Func(DATE *p)
{
p->year=2018;
p->month = 12;
p->day = 25;