第一篇:2015C語(yǔ)言期末考試樣題
------------------
一、選擇題(每小題1分,共30分)1. 以下敘述正確的是()。
A)在C程序中,main函數(shù)必須位于程序的最前面 B)C程序的每行中只能寫(xiě)一條語(yǔ)句 C)C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句
D)在對(duì)一個(gè)C程序進(jìn)行編譯的過(guò)程中,可發(fā)現(xiàn)注釋中的拼寫(xiě)錯(cuò)誤 2.一個(gè)C語(yǔ)言程序的基本單位是()A)函數(shù)
B)子程序
C)過(guò)程 D)命令 3.一個(gè)C語(yǔ)言的語(yǔ)句必須使用的結(jié)束符號(hào)是()
A),B)。
C):
D);
4.下列選項(xiàng)中,可以作為C語(yǔ)言標(biāo)識(shí)符的是()
A)3stu B)#stu C)stuD)stu.3 5.設(shè)有說(shuō)明:char w;int x;float y;double z;則表達(dá)式w*x+z-y值的數(shù)據(jù)類(lèi)型為()
A)float B)char C)int D)double 6.下列敘述正確的是()
A)賦值語(yǔ)句中的“=”是表示左邊變量等于右邊表達(dá)式 B)賦值語(yǔ)句中左邊的變量值不一定等于右邊表達(dá)式的值 C)賦值語(yǔ)句是由賦值表達(dá)式加上分號(hào)構(gòu)成的 D)x+=y;不是賦值語(yǔ)句
7.若x為int型變量,則執(zhí)行x=6;x+=x-=x*x;語(yǔ)句后,x的值為()
A)36
B)-60
C)60
D)-24 8.若有a=2,b=3,c=4,則表達(dá)式a= =3和a=3的值分別為()
A)0和0 B)1和3 C)3和3 D)0和3
9.使條件表達(dá)式(year%4==0&&year%100!=0)||(year%400==0)結(jié)果為假的值是()
A)1950
B)2000 C)1996 D)2004 10. 若x、i、j、k都是int型變量,則計(jì)算下面表達(dá)式后,x的值為()。x=(i=4,j=16,k=32)A)4 B)16 C)32 D)52 11. 邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類(lèi)型()
A)只能是0和1 B)只能是0或非0正數(shù) C)只能是整型或字符型數(shù)據(jù) D)可以是任何類(lèi)型的數(shù)據(jù)
12. 若希望當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為“真”,A的值為偶數(shù)時(shí),表達(dá)式的值為“假”。則以下不能滿足要求的表達(dá)式是()
A)A%2==1 B)!(A%2==0)C)!(A%2)D)A%2 13.語(yǔ)句while(!E);中的表達(dá)式!E等價(jià)于()。
A)E==0 B)E!=1 C)E!=0 D)E==1 14.下面程序段的運(yùn)行結(jié)果是()a=1;b=2;c=2 while(a
x=x*x;} while(!x);A)是死循環(huán) B)循環(huán)執(zhí)行二次
C)循環(huán)執(zhí)行一次 D)有語(yǔ)法錯(cuò)誤 16.以下正確的函數(shù)原形說(shuō)明語(yǔ)句是()
A)void fun(int x);
B)float fun(void y);C)double fun(x);
D)int(char ch);17.在C語(yǔ)言中,形參必須是()
A)常量
B)變量
C.)數(shù)值
D)表達(dá)式 18.C語(yǔ)言的函數(shù)()
A)可以嵌套調(diào)用,不能遞歸調(diào)用
B)可以嵌套定義
C)既可以嵌套調(diào)用,也可以遞歸調(diào)用
D)不可以嵌套調(diào)用 19.合法的數(shù)組定義是()
A)int a[ ]=”string”;
B)int a[5]={0,1,2,3,4,5};C)char a=”string”;
D)char a[ ]={0,1,2,3,4,5};20.表達(dá)式strlen(“string”)+strlen(“C”)的運(yùn)算結(jié)果為()
A)9
B)10
C)7
D)8 21.若有定義和語(yǔ)句:char s[10];s=“abcd”;printf(“%sn”,s);則結(jié)果是()(以下u代表空格)
A)abcd
B)a C)abcd u u u u u
D)編譯不通過(guò)
正確形式char s[10] =“abcd”;22.若已定義:int a[9],*p=a;并在以后的語(yǔ)句中未改變p的值,不能表示a[1]地址的表達(dá)式是()
A)p+1 B)a+1
C)a++
D)++p 23.若有int x, *pb;則正確的賦值表達(dá)式是
A)pb=&x
B)pb=x;C)*pb=&x;D)*pb=*x 24.設(shè)有程序段:char s[ ]=”china”;char *p;p=s;則下面敘述正確的是()
A)s和p完全相同 錯(cuò),s是字符數(shù)組,p是指向字符串的指針
B)數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等 錯(cuò),s內(nèi)容與p指向的字符串內(nèi)容相等才對(duì)
C)*p與s[0]相等
D)s數(shù)組長(zhǎng)度和p所指向的字符串長(zhǎng)度相等 錯(cuò),字符串長(zhǎng)度大于數(shù)組 25.下面對(duì)結(jié)構(gòu)變量的敘述中錯(cuò)誤的是()
A)相同類(lèi)型的結(jié)構(gòu)變量間可以相互賦值 B)通過(guò)結(jié)構(gòu)變量,可以任意引用它的成員
C)結(jié)構(gòu)變量中某個(gè)成員與這個(gè)成員類(lèi)型相同的簡(jiǎn)單變量間可相互賦值 D)結(jié)構(gòu)變量與簡(jiǎn)單變量間可以賦值 26.若有結(jié)構(gòu)類(lèi)型定義如下:
struct bd {
int x;
float y;}r,*p=&r;那么,對(duì)r中的成員x的正確引用是()
A)(*p).r.x B)(*p).x
C)p->r.x D)p.r.x 27.在一個(gè)函數(shù)里不能說(shuō)明()
A)全局變量
B)靜態(tài)變量
C)局部變量
D)靜態(tài)局部變量 28.以下關(guān)于文件包含的說(shuō)法中錯(cuò)誤的是()
A)文件包含是指一個(gè)源文件可以將另一個(gè)源文件的全部?jī)?nèi)容包含進(jìn)來(lái)。B)文件包含處理命令的格式為
#include “包含文件名” 或 #include <包含文件名> C)一條包含命令可以指定多個(gè)被包含文件
D)文件包含可以嵌套,即被包含文件中又包含另一個(gè)文件。29.下列語(yǔ)句中,將C定義為文件型指針的是()
A)FILE c;
B)FILE *c;
C)file c;
D)file *c;30.下面對(duì)typedef的敘述中不正確的是()
A)用typedef可以定義各種類(lèi)型名,但不能用來(lái)定義變量 B)用typedef可以增加新類(lèi)型
C)用typedef只是將已存在的類(lèi)型用一個(gè)新的標(biāo)識(shí)符來(lái)代表 D)使用typedef有利于程序的通用和移植
二、寫(xiě)出下列程序的運(yùn)行結(jié)果(每小題3分,共24分)1.以下程序的輸出結(jié)果是 x=3 換行x>3。
#include “stdio.h” main(){ int x=3;switch(x)
{ case 1:
case 2:printf(“x<3n”);
case 3:printf(“x=3n”);
case 4:
case 5:printf(“x>3n”);break;
default:printf(“x unknown”);
} }
2.以下程序的輸出結(jié)果是 x=4。
#include
void main(){ int i,j,x=0;for(i=0;i<2;i++)for(j=0;j<3;j++){ if(j%2)continue;x++;} printf(“x=%dn”,x)}
3.以下程序的輸出結(jié)果是 20,f1()換行30,f2(),換行10,main()。
#include “stdio.h” static int x=20;void f1(int x){ x+=10;printf(“%d,f1()n”,x);} void f2(){ x+=10;printf(“%d,f2()n”,x);} void main(){ int x=10;f1(x);f2();printf(“%d,main()n”,x);
} 4.以下程序的輸出結(jié)果是。
#include
for(i=1;i<=n;i++){ for(j=1;j<=10;j++)putchar(S);for(j=1;j<=n-i;j++)putchar(S);for(j=1;j<=i;j++){putchar(‘*’);} putchar(‘n’);} }
5.以下程序的輸出結(jié)果是 5,9,9,9。
#include
int *p=a;++p;printf(“%d %d %d %dn”,*a,*(a+2),*(p+1),p[1]);} 6.下面程序的運(yùn)行結(jié)果是()
#include “stdio.h” void main(){ char a[]=“ab12cd34ef”;int i,j;for(i=j=0;a[i];i++)if(a[i]>=’a’&&a[i]<=’z’)a[j++]=a[i];a[j]=’