大一c語言考試試題
大一c語言試題
一、單項(xiàng)選擇題(每小題2分,共50分)
1、一個(gè)C程序的執(zhí)行是從___A__。
? A、本程序的main函數(shù)開始,到main函數(shù)結(jié)束
? B、本程序的main函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束
? C、本程序文件的第一個(gè)函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束
? D、本程序文件的第一個(gè)函數(shù)開始,到本程序main函數(shù)結(jié)束
2、C語言程序的基本單位是___C___。
A、程序行 ? ? ? ? ? ? ? ? ? ? ? B、語句
C、函數(shù) ? ? ? ? ? ? ? ? ? ? ? ? D、字符
3、請(qǐng)選出可用作C語言用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符___B___。 ? ? ?
A、void ? ? ? ? ?B、a3_b3 ? ? ? ? C、For ? ? ? ? ? D、2a
? ? ?define ? ? ? ? ? _123 ? ? ? ? ? ? -abc ? ? ? ? ? ? DO
? ? ? WORD ? ? ? ? ? ? IF ? ? ? ? ? ? ?ase ? ? ? ? ? ? ?sizeof
4、假定x和y為double型,則表達(dá)式(x=2,y=x+5/2)的值是__C__ 。
? A、4.500000 ? ? ? ? ? ? ? ? ? ? B、4 ?
? C、4.000000 ? ? ? ? ? ? ? ? ? ? D、2.000000
5、下列可以正確表示字符型常量的是___D__。
A、297 ? ? ? ? ? ? ? ? ? ? ? ? B、"a" ? ?
? ?C、"\n" ? ? ? ? ? ? ? ? ? ? ? ?D、'\t'
6、在C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是__D__。
? ? ?A、/ ? ? ? ? ? ? ? ? B、++ ? ?
? ? ?C、*= ? ? ? ? ? ? ? ?D、%
7、C語言中,復(fù)合語句的構(gòu)成是將一系列語句置于__C__。
? ?A、begin與end之間
? ?B、方框號(hào)“[ ]”之間
? ?C、花括號(hào)“{ }”之間
? ?D、圓括號(hào)“( )”之間
8、有如下程序段,對(duì)應(yīng)正確的數(shù)據(jù)輸入是___A___。
float x,y;
scanf(”%f%f”, &x,&y);
printf(”a=%f,b=%f”, x,y);
A、2.04<回車> ? ? ? ? ? ? ? ? ? ? B、2.04,5.67<回車>
? 5.67<回車>
C、A=2.04,B=5.67<回車> ? ? ? ? ? ?D、2.045.67<回車>
9、以下程序段的輸出結(jié)果是___D__。
int a=5678;
? ?printf(”%2d\n”, a);
A、提示出錯(cuò)、無結(jié)果 ? ? ? ? ? ? ? B、56 ?
? ?C、78 ? ? ? ? ? ? ? ? ? ? ? ? ? ? D、5678
10、已知:char ch='A';則下列表達(dá)式的值是__B__。
? ?ch = (ch>='A'&&ch<='Z') ? (ch+32) : ch;
? ?A、A ? ? ? ? ?B、a ? ? ? ? ?C、Z ? ? ? ? D、z
11、下列描述,正確的是___B__ 。
A、表達(dá)式3.91%5是合法的
B、用b=89作為while循環(huán)的條件是合法的
C、逗號(hào)表達(dá)式是沒有值和類型的
D、字符型變量和int型變量的操作完全不同
12、閱讀以下程序:
? ?main()
? {int x;
? ?scanf("%d",&x);
? ?if(x--<5) printf("%d",x);
? ?else printf("%d",x++);
? }
程序運(yùn)行后,如果從鍵盤上輸人5,則輸出結(jié)果是__B__ 。
? ?A、3 ? ? ? ? ? B、 4 ? ? ? ? ? C、 5 ? ? ? ? ? ?D、 6
13、下列程序的運(yùn)行結(jié)果是___C__。
#include ”stdio.h”
main()
{ int k;
?k=3;
?switch(k)
?{ case 1: printf(”%d\n”, k++);
? ?case 2: printf(”%d\n”, k++);
? ?case 3: printf(”%d\n”, k++);
? ?case 4: printf(”%d\n”, k++);
? ? ? ? ? ?break;
? ?default: printf(”Full!\n”);
? }
}
A、3 ? ? ? ? ? ?B、4 ? ? ? ? ? ?C、3 ? ? ? ? ? ?D、4
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4 ? ? ? ? ? ? ? 4
14、設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、
? ?m=2、n=1,則邏輯表達(dá)式(m==a<b)&&(n==c<d) 的值為__A__。
? ? A、0 ? ? ? ?B、 1 ? ? ? C、2 ? ? ? ? D、 3
15、設(shè)x、y和temp均為long int型變量,則以下語句:
{temp=x; x=y; y=temp;} 的功能是__D__。
A、把x和y按從大到小排列 ? ?
B、把x和y按從小到大排列
C、無確定結(jié)果
D、交換變量x和變量y的值
16、以下程序的輸出結(jié)果是 ___A__ 。
main()
?{int a, b;
? for(a=1, b=1; a<=100; a++)
? ? {if(b>=10) break;
? ? ?if (b%3==1)
? ? ? ? { b+=3; continue; }
}
? printf("%d\n",a);
?}
? A、4 ? ? ? ? ? B、6 ? ? ? ? ?C、5 ? ? ? ? ?D、101
17、執(zhí)行以下程序后輸出的結(jié)果是___D__。
main()
{ int y=10;
?do {y--;}
?while(--y);
?printf("%d\n",y--);}
?A、-1 ? ?B、1 ? ? ? ? ?C、8 ? D、0
18、執(zhí)行以下程序后輸出的結(jié)果是___B__。
main()
?{int i, j, w=0;
? for(i=4; i; i--)
? ? for(j=1;j<=2;j++)
? ? ? ?w=w+i*j; ?w=i*j;
? ?printf("%d\n",w);
?}
A、4 ? ? ? ? ? B、0 ? ? ? ? ? C、1 ? ? ? ? ? D、30
19、以下程序運(yùn)行后,輸出結(jié)果是__C__。 ?
main()
{
int ?n[5]={3,3,3},i,k=2;
for(i=0;i<k;i++) ?n[i]=n[i]+1;
printf("%d\n",n[k]);
}
A、4 ? ? ? ? ?B、9 ? ? ? ? ? C、3 ? ? ? ? ? D、不確定的值
20、以下程序的輸出結(jié)果是 __A__ 。
? ?f ( int a)
? {int b=0;
? ?static int c = 3;
? ?b++; c++;
? ?return(a+b+c);
? }
? main()
?{int a = 2, i;
? for(i=0;i<3;i++) printf("%d\n",f(a));
?}
? ? ?A、 7 ? ? ? ?B、 7 ? ? ? ?C、 7 ? ? ? ? ? D、 7
? ? ? ? ?8 ? ? ? ? ? ?9 ? ? ? ? ? ?10 ? ? ? ? ? ? ?7
? ? ? ? ?9 ? ? ? ? ? ?11 ? ? ? ? ? 13 ? ? ? ? ? ? ?7
21、設(shè)C程序如下:
#define ABC(x) x*x
? ?#include"stdio.h"
? ?main()
? ?{int a=3,b;
? ? b=ABC(a+1);
? ? printf("b=%d", b); }
上述程序運(yùn)行輸出的結(jié)果是__D_ 。
? ?A、b=4 ? ? ? ? ? ? ? ? ? ? ? ? B、b=a+1
? ?C、b=16 ? ? ? ? ? ? ? ? ? ? ? ?D、b=7
22、以下程序的輸出結(jié)果是__B__。
? ?main()
? {int i, a[10];
? ?for(i=9;i>=0;i--) a[i]=10-i;
printf("%d %d %d",a[1],a[6],a[9]);
? }
? ? A、1 6 9 ? ? ? ? ? ? ? ? ? ? ?B、9 4 1
? ? C、9 6 1 ? ? ? ? ? ? ? ? ? ? ?D、3 5 7
23、若定義:float x=3.14159,*p=&x;
則printf("%f\n",*p++);的輸出結(jié)果為__C__ 。
A、無確定值 ? ? ? ? ? ? ? ? ? B、x的地址 ? ? ? ?
? ?C、3.14159 ? ? ? ? ? ? ? ? ? ?D、4.14159
24、以下程序的輸出結(jié)果是___B__
main()
{char b[]="Language";
char *p=b;
printf("%c ",*(b+2));
p=p+7;
printf("%c\n",*p++);
}
A、2 ?7 ? ? ? ?B、n ?e ? ? ? ? C、a ?g ? ? ? ? ?D、n ?u
25、下列程序的輸出結(jié)果是___A__。
#include "stdio.h"
main()
{
? ?int a[]={1,2,3,4,5,6,7,8,9,0}, i, s, *p;
? ?p=a;s=0;
? ?for(i=0;i<=9;i++)
s+=*p++; ?
? ?printf("%d\n", s);
}
A、45 ? ? ? ? ? ? B、44 ? ? ? ? ? ? C、0 ? ? ? ? ?D、9
二、判斷題(每小題1分,共10分)
1.語句int *point;中的point是指針變量名。( T )
2.主函數(shù)和其它函數(shù)之間可以相互調(diào)用。( F ?)
3.puts( )和gets( )函數(shù)只能輸入或輸出一個(gè)字符。( F ?)
4. 可以對(duì)字符型數(shù)組元素進(jìn)行整體輸入、輸出。( T )
5.do-while語句構(gòu)成的循環(huán)不能用其他語句構(gòu)成的循環(huán)來代替。( ?F ?)
6.在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量可以在本函數(shù)范圍內(nèi)有效。(F ?)
7.函數(shù)必須有返回值,否則不能使用函數(shù)。( F ? )
8.for(;;);語句相當(dāng)于while(1);語句。( T )
9.C程序的執(zhí)行總是從第一個(gè)定義的函數(shù)開始。( F )
10.C語言中的關(guān)鍵字專門用作語言的特定成分,而不能作為一般標(biāo)識(shí)符使用。( T )
三、程序填空題(每空2分,共10分)
1、下面程序完成判斷某一個(gè)數(shù)m是否為素?cái)?shù),如果是則輸出"m is a prime!",否則就輸出"m is not a prime!",請(qǐng)選擇填空。
? ? main()
? ?{ int i, m;
? ? ?scanf("m=%d", &m);
? ? ?for(i=2; i<m; i++)
? ? ? { if(m%i==0)
? ? ? ? { printf("%d is not a prime!\n", m); ?(1) ?}
? ? ? ? else ? (2) ?
? ? ? }
? ? ?if(i==m) printf("%d is a prime!\n", m);
? ?}
(1)、 A、break ? ? ? ? ? ? ? ? ? ?B、continue
C、break; ? ? ? ? ? ? ? ? ?D、continue;
(2)、 A、break ? ? ? ? ? ? ? ? ? ?B、break;
C、continue ? ? ? ? ? ? ? ? D、continue;
2、以下程序的功能是:求出用數(shù)字0至9組成沒有重復(fù)數(shù)字且是13倍數(shù)的三位數(shù)的個(gè)數(shù),請(qǐng)選擇填空。
? ?#include<stdio.h>
void main()
? ?{ int i, j, k, w, count = 0;
? ? ?for( ?(3) ?; i<=9; i++)
? ? ? ?for(j=0;j<=9; j++)
? ? ? ? ? ?for(k=0; k<=9;k++)
? ? ? ? ? ? ? if( ?(4) ?)
? ? ? ? ? ? ? ? { w = i*100+j*10+k;
if( ?(5) ?)
count++;
}
? ? ? printf("\n count=%d\n", count);
? }
(3)、 A、i=0 ? ? ? ? ? ? ? ? ? ? B、i=1
? ? ?C、i=9 ? ? ? ? ? ? ? ? ? ? D、i=-1
(4)、 A、i!=j ? ? ? ? ? ? ? ? ? ?B、i!=j ||j!=k
C、i!=j&& j!=k ? ? ? ? ? ? D、i!=j&& j!=k && k!=i
(5)、 A、w%13=0 ? ? ? ? ? ? ? ? ?B、w/13=0
? ? ?C、w%13==0 ? ? ? ? ? ? ? ? D、w/13==0
四、編程題(第1小題12分,第2小題18分,共30分)
1、從鍵盤輸入一個(gè)4位數(shù)的正整數(shù)n,將該數(shù)反序輸出。例如,若輸入的是
? ?1357,則輸出的是7531。
要求:1)利用VC++編譯系統(tǒng)進(jìn)行調(diào)試、運(yùn)行
? ? ? ? ?2)對(duì)輸入的正整數(shù)n的合法性進(jìn)行檢查
3)將源程序以“編程題1.c”為文件名保存在網(wǎng)絡(luò)盤(K:盤)的考生文件夾上,用其它文件名保存或保存在其他地方均不能得分
2、已知一組字符串a(chǎn)[27]="jjyyzzabcdefgJJYYZZABCDEFG"; 請(qǐng)編一程序,將其 ? ?中的小寫字母換成其前一個(gè)字母,即z換成y,y換成x,...,b換成a,若是a則換成z。然后對(duì)數(shù)組a[27]從小到大排序,并輸出排序后的字符串。
要求:1)利用VC++編譯系統(tǒng)進(jìn)行調(diào)試、運(yùn)行
2)先輸出原字符串(即未做任何改變的字符串),最后輸出排序后
的字符串
3)將源程序以“編程題2.c”為文件名保存在網(wǎng)絡(luò)盤(K:盤)的考生文件夾上,用其它文件名保存或保存在其他地方均不能得分