1、以下對二維數組 a 的正確說明是(c)。
A.int a[3][]
B.float a(3,4)
C.double a[1][4]
D.float a(3)(4)
2、判斷字符串a是否大於b,應當使用(D )
A.if (a>b)
B.if (strcmp(a,b))
C.if (strcmp(b,a)>0)
D.if (strcmp(a,b)>0)
3、有以下程序
main()
{
int a=666,b=888;
printf("%d\n",a,b);
}
程序運行後的輸出結果是( 666 )。
錯誤信息
666
888
666,888
3、下列選項中,不能用作標識符的是(D )。
標識符首位不能是數字
A._1234_
B._1_2
C.int_2_
D.2_int_
4、在 C++ 中,用於實現動態多態性的是(虛函數)。
內聯函數
重載函數
模板函數
虛函數
動態多態性:編譯時無法立即確定其所要調用的同名函數,注意是同名函數,這纔是多態的體現!要在運行時才能確定其要調用同名函數!
另一種靜態多態:是在編譯時就能被確定其要調用同名函數。
是能通過設立一個虛函數的方法,來動態確定要調用的同名函數。
5、下列標識符錯誤的是(c)
標識符首位不能是數字
A.xly
B._123
C.2ab
D._ab
6、以下不符合 C 語言語法的賦值語句是(D)。
A.a=1,b=2
B.++j;
C.a=b=5;
D.y=(a=3,6*5);
7、以下對C語言函數的描述中,正確的是(A)。
A.C程序必須由一個或一個以上的函數組成
B.C 函數既可以嵌套定義又可以遞歸調用
C.函數必須有返回值,否則不能使用函數
D.C 程序中有調用關係的所有函數必須放在同一個程序文件中
8、設 x,y,t 均爲 int 型變量,執行下列語句後,y的值爲(3)。
x=y=3; t=++x||++y;
不確定
4
3
1
9、下列程序段,循環體執行次數是:2次
y = 2;
while (y <= 8)
y = y + y;
2
16
4
3
10、用變量a給出下面的定義:一個有10個指針的數組,該指針指向一個函數,該函數有一個整形參數並返回一個整型數
A.int *a[10];
B.int (*a)[10];
C.int (*a)(int);
D.int (*a[10])(int);
11、下面有關java和c++的描述,錯誤的是?(B)
JAVA不支持多繼承
A.java是一次編寫多處運行,c++是一次編寫多處編譯
B.c++和java支持多繼承
C.Java不支持操作符重載,操作符重載被認爲是c++的突出特徵
D.java沒有函數指針機制,c++支持函數指針
12、不能把字符串”HELLO!”賦給數組b的語句是(B)
A.char b[10]={‘H’,’E’,’L’,’L’,’O’,’!’,’\0’};
B.char b[10];b=”HELLO!”;//這裏的b是地址,數組首地址
C.char b[10];strcpy(b,”HELLO!”);
D.char b[10]=”HELLO!”;
13、*p++ 自增p 還是 p 所指向的變量?//自增P,然後指向之前所指向的變量
自增p
自增p所指向的變量
和機器相關
14、下面程序會輸出什麼:1 2 2 2
static int a=1;
void fun1(void){ a=2; }
void fun2(void){ int a=3; }
void fun3(void){ static int a=4; }
int main(int argc,char** args)
{
printf(“%d”,a);
fun1( );
printf(“%d”,a);
fun2( );
printf(“%d”,a);
fun3( );
printf(“%d”,a);
}
1 2 3 4
1 2 2 2
1 2 2 4
1 1 1 4
15、已知一運行正常的程序中有這樣兩個語句:int p1,*p2=&a; p1=b; 由此可知,變量a和b的類型分別是(C)。
A.int和int
B.int*和int
C.int和int*
D.int*和int*
16、c++中,聲明const int i,是在哪個階段做到 i只可讀的(編譯的時候)
編譯
鏈接
運行
以上都不對
17、以下程序的運行結果是(B)
int main(void)
{
printf(“%s , %5.3s\n”,”computer”,”computer”);
return 0;
}
A.computer , puter
B.computer , com
C.computer , computer
D.computer , compu.ter
18、運行下面這段C語言程序之後,輸出在屏幕上的結果是:A
void foobar(int a, int *b, int **c)
{
int *p = &a;
*p = 101;
*c = b;
b = p;
}
int main()
{
int a = 1;
int b = 2;
int c = 3;
int *p = &c;
foobar(a, &b, &p);
printf("a=%d, b=%d, c=%d, *p=%d\n", a, b, c, *p);
return (0);
}
A.a=1, b=2, c=3, *p=2
B.a=101, b=2, c=3, *p=2
C.a=101, b=101, c=2, *p=3
D.a=1, b=101, c=2, *p=3
19、下列程序的運行結果是3,5,請爲橫線處選擇合適的程序( )
#include<stdio.h>
struct S
{
int n;
char c[10];
} *p;
main()
{
struct S a[3]={{3,"abc"},{5,"def"},{7,"ghi"}};
p=a;
printf("%d,",(*p).n);
printf("%d\n",((*)(p+1)).n);
}
20、在 C 語言中下面那個語句的結果是 1 ?B
A.main 函數正常結束的返回值
B.return 7&1;
C.char *p="hello"; return p == "hello";
D.上面都不對
21、下列給定程序中,函數fun的功能是:把形參a所指數組中的奇數按原順序依次存放到a[0]、a[1]、a[2]…中,把偶數從數組中刪除,奇數個數通過函數值返回。 例如,若a所指數組中的數據最初排列爲:9,1,4,2,3,6,5,8,7,刪除偶數後,a所指數組中的數據爲:9,1,3,5,7,返回值爲5。
函數原型:int cnt_array_oushu(int *a, int len)
#include<stdio.h>
#define N 9;
int cnt_array_oushu(int *a, int len)
{
int *p = a;
int arr[];
int i = 0;
int j = 0;
for(i=0;i<len;i++)
{
if((a[i]%2) == 0)
{
arr[j] = a[i];
}
else
{
p = p + 1;
}
}
}
int main(void)
{
int a[] = {9,1,4,2,3,6,5,8,7};
int sum;
sum = cnt_array_oushu(a, N)
return 0;
}