一、int (*p)[6]; 它的含義爲()。c++
A 具備6個元素的一維數組
B 定義了一個指向具備6個元素的一維數組的指針變量
C 指向整型指針變量
D 指向6個整數中的一個的地址數組
答案: B函數
解析: int(*p)[n] 指向數組的指針; int *p[n] 放着指針的數組操作系統
二、語句for(a=0,b=0;b!=100&&a<5;a++)scanf(「%d」,&b); scanf最多可執行次數爲:( ) 指針
A 4
B 6
C 5
D 1內存
答案: C作用域
三、在下面的一維數組定義中,錯誤的定義格式爲( )字符串
A int a[]={1,2,3}
B int a[10]={0}
C int a[]
D int a[5]get
答案: C原型
解析: 數組在定義時,必須指明數組大小,這樣編譯器能夠在內存上申請空間,顯然C選項的參數缺省,致使編譯器沒法肯定申請內存的大小,因此會報錯
四、如下敘述中正確的是()
A 結構體類型中各個成分的類型必須是一致的
B 結構體類型中的成分只能是C語言中預先定義的基本數據類型
C 在定義結構體類型時,編譯程序就爲它分配了內存空間
D 一個結構體類型能夠由多個稱爲成員(或域) 的成分組成
答案: D
解析:
A 複合語句在語法上包含多條語句,其中不能定義局部變量
B 花括號對{}只能用來表示函數的開頭和結尾,不能用於其餘目的
C 空語句就是指程序中的空行
D 當用scanf從鍵盤輸入數據時,每行數據在沒按下回車鍵(Enter鍵) 前,能夠任意修改
答案: D
解析:
a.複合語句,簡稱爲語句塊,使用大括號把許多語句和聲明組合到一塊兒,造成單條語句。在語句塊內聲明的變量將具備語句塊做用域。若是一個變量沒有被聲明爲 static 或 extern,那麼該變量是局部變量,其存儲空間會在語句塊結束以後自動被釋放。
main( )
{
char c1,c2;
c1 ='C'+'8'-'3';
c2 ='9'-'0';
printf("%c %d\n",c1,c2);
}
則程序的輸出結果是
A H '9'
B H 9
C F '9'
D 表達式不合法輸出無定值
答案: B
解析: string 和 int 型都支持直接加減。
'C'+'8'-'3' = 67+56-51 = 72,由於輸出%c爲字符型,因此結果爲 H
七、如下系統中,int類型佔幾個字節,指針佔幾個字節,操做系統可使用的最大內存空間是多大:
A 32位下:4,4,2^32 64位下:8,8,2^64
B 32位下:4,4,不限制 64位下:4,8,不限制
C 32位下:4,4,2^32 64位下:4,8,2^64
D 32位下:4,4,2^32 64位下:4,4,2^64
答案: C
解析: 特別是int相關的類型在不一樣位數機器的平臺下長度不一樣。C99標準並不規定具體數據類型的長度大小,只規定級別。
系統支持的最大內存只與硬件有關,即地址線的數目。32位就是有32根地址線,那麼它的尋址能力就是2的32次方,64位就是有64根地址線,尋址能力就是2的64次方。固然,這都是理論值,64位實際最大支持128G。
八、若以」a+」方式打開一個已存在的文件,則如下敘述正確的是()。
A 文件打開時,原有文件內容不被刪除,位置指針移到文件末尾,可進行添加和讀操做
B 文件打開時,原有文件內容不被刪除,位置指針移到文件開頭,可進行重寫和讀操做
C 文件打開時,原有文件內容被刪除,只可進行寫操做
D 以上各類說法皆不正確
答案: A
解析:
若以」a+」方式打開一個已存在的文件,原文件若是不存在,則建立;若是存在則打開,而且將文件位置指針移到文件尾,能夠在文件尾進行數據添加,也能夠從文件開頭處進行讀數。但文件位置指針不可移到文件頭,不能進行重寫操做。
總結,帶有「 + 」都是便可讀又可寫,a 在文件末尾寫入數據,其餘根據詞義判斷便可。
九、有如下程序
main()
{ int a=666,b=888;
printf("%d\n",a,b);
}
程序運行後的輸出結果是( )。
A 錯誤信息
B 666
C 888
D 666,888
答案: B
解析: printf函數參數的入棧順序是從右到左(888先入棧,接着666入棧)。因此從棧裏面讀取一個數據時,只會讀取最後入棧的數據,也即666.
十、函數()把文件位置重定位到文件中的指定位置
A fseek
B fread
C fopen
D fgets
答案: A
解析:
fseek
函數原型:int fseek(FILE *stream,long offset,int framewhere)
做用:重定位文件內部的指針
fread
函數原型:size_t fread(void* buff,size_t size,size_t count,FILE* stream)
做用:從文件中讀入數據到指定的地址中
fopen
fopen函數是在當前目錄下打開一個文件,其調用的通常形式爲:
文件指針名=fopen(文件名,使用文件方式);
fgets
讀寫字符串函數
十一、如下程序段的執行結果是()。
double x;x=218.82631;
printf("%-6.2e\n",x);
A 輸出格式描述符的域寬不夠,不能輸出
B 輸出爲21.38e+01
C 輸出爲2.19e+02
D 輸出爲-2.14e2
答案: C
解析:
十二、執行語句 scanf(「%c,b=%d,f=:%f」,&a,&b,&c) 時,正確的鍵盤 輸入方法是( )
A a,4,6
B 4,b=4,f=:8.5
C c,b=2,f=4
D b,b=5,f=4.3
答案: B
解析: scanf("輸入控制符", 輸入參數);
在scanf中,格式控制符與printf函數中的使用方式相同,如%d、%o、%x、%c、%s、%f等等。可是在輸入時全部的「非格式控制符」都要原樣輸入。因此在本題中輸入的時候b=,f=:以及逗號都必需要原樣輸入。僅有選項B符合要求。
1三、如下程序的輸出結果爲
#include "stdio.h"
int func(int x, int y)
{
return (x + y);
}
int main()
{
int a = 1, b = 2, c = 3, d = 4, e = 5;
printf(" %d\n", func((a + b, b + c, c + a), (d, e)));
return 0;
}
A 15
B 5
C 9
D 出錯
答案: C
解析: c++primer 第4版p145,逗號表達式是一組由逗號分隔的表達式,這些表達式是從左向右計算。逗號表達式的結果是其最後邊表達式的值,若是最後邊的操做數是左值,則逗號表達式的值也是左值。此類表達式一般用於for循環。
括號中逗號運算符返回值是最後的表達式的值,題中第一個參數爲c+a=4, 後一個參數爲e=5