課程代碼:00342
一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫(xiě)在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無(wú)分。
1.可以用作C程序標(biāo)識(shí)符的一組是( )
A.print B.i\am
oodb one-half
aBc 3pai
C.Pxq D.Cpp
line# pow
His.age while
2.以下敘述正確的是( 。
A.宏名必須用大寫(xiě)的英文字母表示
B.宏定義不僅是符號(hào)替換,也可以賦值
C.宏替換是在程序編譯時(shí)完成的,不占用程序運(yùn)行時(shí)間
D.引用帶參數(shù)的宏時(shí),實(shí)際參數(shù)與宏定義中的形式參數(shù)類型應(yīng)一致
3.設(shè)char a='\70';則變量a中( 。
A.包含1個(gè)字符 B.包含2個(gè)字符
C.包含3個(gè)字符 D.是非法表示
4.設(shè)long i=65539;,執(zhí)行語(yǔ)句printf("%d",i);后的輸出結(jié)果是( 。
A.-3 B.3
C.65539 D.數(shù)據(jù)不確定

11.以下說(shuō)法中正確的是( )
A.字符型變量可以存放字符串
B.遞歸調(diào)用是指函數(shù)調(diào)用自己
C.所有的外部函數(shù)只能在本文件中被調(diào)用
D.在循環(huán)體中break語(yǔ)句和continue語(yǔ)句的作用都是結(jié)束循環(huán)
12.設(shè)char s[6],*ps=s;,則正確的賦值語(yǔ)句是( 。
A.s="12345"; B.*s="12345";
C.ps="12345"; D.*ps="12345";
13.設(shè)int a[ ]={1,2,3,4,5},*p=a;
則數(shù)組元素的正確表示是( 。
A.a[2] B.&(a+1)
C.a[5] D.&p
14.對(duì)二維數(shù)組的正確定義是( 。
A.int a[ ] [ ]={1,2,3,4,5,6}; B.int a[2] [ ]={1,2,3,4,5,6};
C.int a[ ] [3]={1,2,3,4,5,6}; D.int a[2,3]={1,2,3,4,5,6};
15.字符數(shù)組s不能作為字符串使用的是( )
A.char s[ ]="happy";
B.char s[ ]={"happy"};
C.char s[6]={'h','a','p','p','y'};
D.char s[4]={'h','a','p','p','y'};
16.若定義函數(shù):
fun(int a,float b)
{return a+b;
}
則該函數(shù)的數(shù)據(jù)類型是( 。
A.int B.void
C.float D.不確定
17.設(shè)
struct st
{ int a;
float b;
}s, *p=&s;
則正確的引用是( 。
A.(*).s.a B.(*p).a
C.p->s.a D.p.s.a
18.設(shè)enum color {red,yellow=2,blue,white,black}r=white;,執(zhí)行printf("%d",r);后的輸出結(jié)果是( )
A.0 B.1
C.3 D.4
19.以下說(shuō)法中錯(cuò)誤的是( 。
A.共用型數(shù)據(jù)中所有成員的首地址都是同一個(gè)
B.可以用已定義的共用型來(lái)定義數(shù)組或指針變量的類型
C.共用型數(shù)據(jù)中的成員可以是結(jié)構(gòu)型,但不可以是共用型
D.用typedef定義新類型取代原有類型后,原類型仍可有效使用
20.設(shè)#define L(x) 2*3.14*x
則L(x)是( 。
A.函數(shù)名 B.函數(shù)調(diào)用
C.無(wú)參的宏名 D.帶參的宏名 二、填空題(本大題共10小題,每小題2分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。
21.設(shè)int a[10];則數(shù)組a的首元素是__________________。
22.設(shè)int a=0,b=0,c;,則執(zhí)行c=(a-=b-5),(a=b,b=3);后變量c的值是__________________。
23.設(shè)int a=0,b=0,c=2,d=4;,則執(zhí)行(c=a= =b)||(d=b= =a);后變量d的值是__________________。
24.設(shè)int a[ ]={1,2,3,4,5,6,7,8},*s=a;則*(s+1)的值是__________________。
25.設(shè)char s[ ]="apple";,則數(shù)組s的長(zhǎng)度是__________________。
26.被調(diào)用函數(shù)執(zhí)行結(jié)束時(shí),此函數(shù)中定義的__________________類型的變量不被釋放。
27.表達(dá)式的運(yùn)算對(duì)象可以是常量、函數(shù)調(diào)用和__________________。
28.設(shè)int x;,則將x強(qiáng)制轉(zhuǎn)換為雙精度類型應(yīng)寫(xiě)成__________________。
29.語(yǔ)句if(!k)a=3;中!k與__________________等價(jià)。
30.函數(shù)調(diào)用時(shí),若形參是一個(gè)指針變量,而對(duì)應(yīng)的實(shí)參是一個(gè)數(shù)組名,則函數(shù)參數(shù)的傳遞方式是__________________傳遞。
三、程序分析題(本大題共5小題,每小題5分,共25分)閱讀下列程序,將輸出結(jié)果寫(xiě)到各題右側(cè)的空白處。
31.main( )
{
int a[3][3]={{1},{2},{3}};
int b[3][3]={1,2,3};
printf("]",a[1][0]+b[0][1]);
printf("]\n",a[0][1]+b[1][0]);
}
32.int a=10;
struct data {int a, b;} s;
main ( )
{ int c;
s.a=20;s.b=30;
c=f (s.a+s.b);
printf("%d,%d,%d\n", s.a, s.b, c);
}
f (int b)
{
printf ("%d,%d\n",a, b);
return (a+b);
}
33.#include
fun ( )
{ int y=1;
static int z=4;
z ++; ++ y;
return (y*z);
}
main ( )
{ int i;
for (i=1; i<3; i++)
printf ("]\n",fun ( ));
}
34.main ( )
{ char *p,s[ ]="6543210";
for (p=s; *p!='\0';)
{ printf ("%s\n",p);
p ++;
if (*p!='\0') p ++;
else break;
}
}
35.main( )
{
long f( );
printf("%5ld\n",f(5));
}
long f(int b)
{
if(b= =1| |b==2)return 1;
else return f(b-1)+f(b-2);
} 四、程序填充題(本大題共3小題,每小題6分,共18分)給出下列程序,將橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
36.鍵入10個(gè)整數(shù),統(tǒng)計(jì)其中正數(shù)(neg)、負(fù)數(shù)(pos)和零(zero)的個(gè)數(shù)并將三者輸出。
int neg=0,pos=0,zero=0;
void sele(int num)
{
if(num>0)neg ++;
else if(num<0)pos ++;
else ______________ ;/ * 第一空 */
}
main ( )
{
int i,a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
printf("]",a[i]);
self(_________________); / * 第二空 */
}
printf("\nneg=%d,pos=%d,zero=%d\n",_______________); / * 第三空 */
}
37.輸入一個(gè)學(xué)生的成績(jī)(在0~100分之間,超出此范圍顯示錯(cuò)),進(jìn)行五級(jí)評(píng)分并顯示。
main ( )
{
int score;
scanf ("%d",&score); printf ("%d->",score);
if(__________________) / * 第一空 * /
switch (___________________) / * 第二空 */
{
case 9:
case 10: printf (" Excellent \ n");break;
case 8: printf ("Good \ n");break;
case 7: printf ("Middle \ n"); break;
case 6: printf ("Pass \ n");_______________;/* 第三空 */
default: printf ("No pass \ n");
}
else printf ("Input error! \ n");
}