C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控制程序流向,從而使程序完全結構化。下面是關於全國計算機等級考試C語言程序設計考試試題,歡迎參考!
一、單選題
1.下列關於定義一個指向double型變量的指針,正確的是( B )。
a(5);double *pd=a; le d(2.5),*pd=&d;
le d(2.5),*pd=d; le a(2.5),pd=d;
2.下列關於創建一個int型變量的引用,正確的是( A )。
a(3),&ra=a; a(3),&ra=&a;
le d(3.1);int &rd=d; a(3),ra=a;
3.下列關於指針概念的描述中,錯誤的是( B )。
A.指針中存放的是某變量或對象的地址值
B.指針的類型是它所存放的數值的類型
C.指針是變量,它也具有一個內存地址值
D.指針的值(非常量指針)是可以改變的
4.下列關於引用概念的`描述中,錯誤的是( A )。
A.引用是變量,它具有值和地址值
B.引用不可以作數組元素
C.引用是變量的別名
D.創建引用時必須進行初始化
5.已知:int a[5],*p=a;則與++*p相同的是( D )。
A.*++p B.a[0]
C.*p++ D.++a[0]
6.已知:int a[ ]={1,2,3,4,5},*p=a;在下列數組元素地址的表示中,正確的是( C )。
A.&(a+1) B.&(p+1)
C.&p[2] D.*p++
7.已知:int a[3][4],(*p)[4];下列賦值表達式中,正確的是( A )。
A.p=a+2 B.p=a[1]
C.p=*a D.p=*a+2
8.已知:int b[3][5]={0};下列數組元素值的表示中,錯誤的是( D )。
A.**(b+1) B.(*(b+1))[2]
C.*(*(b+1)+1) D.*(b+2)
9.已知:int a=1,b=2,*p[2];下列表達式中正確的是( C )。
24
A.p=&a B.p=&b
C.p[0]=&a,p[1]=&b D.p[ ]={&a,&b};
10.已知:int a(5),&ra=a;下列描述中,錯誤的是( D )。
是變量a的引用,即爲變量的別名 的值爲5
的地址值爲&a D.改變ra的值爲10,變量a值仍爲5
二、判斷題
√ 1.函數的調用可以嵌套,函數的定義不能嵌套。
× 2.C++語言中,函數可以用原型說明,也可用簡單說明。
× 3.定義函數時,存儲類可以缺省,數據類型也可以省略。
× 4.函數可以沒有參數,但是不能沒有返回值。
× 5.函數定義時必須給出函數體,函數體內至少有一條語句。
√ 6.沒有參數的兩個函數是不能重載的。
√ 7.函數調用方式有傳值調用和引用調用兩種,傳值調用中又分傳值和傳址兩種。
√ 8.函數的存儲類有外部的和靜態的兩種,它們的作用域分別是程序級的和文件級的。
× 9.沒有返回值的函數不能設置爲內聯函數。
× 10.函數可以設置默認的參數值,默認參數值必須設置在函數定義時的形參上。
三、分析下列程序的輸出結果
1.
#include
int fun(int n)
{
int p(1),s(0);
for(int i(1);i
{
p*=i;
s+=p;
}
return s;
}
void main()
{
int s=fun(4);
cout<
}
答: 9
2.
#include
void fun();
void main()
{
for(int i(0);i<4;i++)
fun();
}
void fun()
{
int a(0);
a++;
static int b;
b++;
cout<<"a="<