C. char cl[ ]={?1‘,‘2‘,‘3‘,‘4‘,‘5‘}; D. char c2[ ]={?\\x10‘,‘\\xa‘,‘\\x8‘};
168. 对以下说明语句的正确理解是___b___
int a[10]={6,7,8,9,10};
A. 将5个初值依次与给a[1]至a[5] B. 将5个初值依次与给a[0]至a[4] C. 将5个初值依次与给a[6]至a[10] D. 因为数组长度与初值的个数不同,所以此语句不正确
169. 以下各组选项中,均能正确定义二维实型数组a的选项是:___c___
A. float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}};
B. float a(3,4); float a[3][4]; float a[ ][ ]={{0};{0}};
C. float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}};
D. float a[3][4]; float a[3][ ]; float a[ ][4] 170.若有说明:int a[3][4];则数组a中各元素___c__ A. 可在程序的运行阶段得到初值0 B. 可在程序的编译阶段得到初值0 C. 不能得到确定的初值
D. 可在程序的编译或运行阶段得到初值0 171. 若有说明:int a[3][4]={0};则下面正确的叙述是___d___
A. 只有元素a[0][0]可得到初值0 B. 此说明语句不正确
C. 数组a中各元素都可得到初值,但其值不一定为0
D. 数组a中每个元素均可得到初值0 172. 以下不能对二维数组a进行正确初始化的语句是___c___ A. int a[2][3]={0};
B. int a[ ][3]={{1,2},{0}};
C. int a[2][3]={{1,2},{3,4},{5,6}}; D. int a[ ][3]={1,2,3,4,5,6};
173. 以下能对二维数组a正确初始化的语句是___b___
A. int a[2][ ]={{1,0,1},{5,2,3}}; B. int a[ ][3]={{1,2,3},{4,5,6}}; C. int a[2][4]={{1,2,3},{4,5},{6}}; D. int a[ ][3]={{1,0,1},{ },{1,1}}; 174. 若有说明:int a[3][4];则对a数组元素的非法引用是___d__
A. a[0][2*1] B. a[1][3] C. a[4-2][0] D. a[0][4]
175. 若有说明:int a[3][4];则对a数组元素的正确引用是____c__ A. a[2][4] B. a[1,3] C. a[1+1][0] D. a(2)(1)
176. 以下对二维数组a正确说明是___c___
A. int a[3][ ]; B. float a(3,4);
C. double a[1][4]; D. float a(3)(4); 177. 在C++语言,一维数组的定义方式为:<类型说明符> 数组名 ___d___; A. [常量表达式] B. [整型表达式] C. [整型常量]或[整型表达式] D. [整型常量]
178. 若有说明:int a[10];则对a数组元素的正确引用是___d___
A.a[10]B. a[3.5] C. a(5) D. a[10-10]
179.以下定义一维整型数组a的正确方法是_d__ A. int a(10); B. int n=10,a[n]; C. int n;cin>>n;int a[n]; D. #define SIZE 10 int a[SIZE];
180. 在C++语言中,引用数组元素时,其数组下标的数据类型允许的是___c___ A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 -2.填空题
1. 下面程序的功能是:从键盘上输入若干个整数,按升序排序后输出。 #include if(a[i]>a[j]){ int t=a[i];a[i]=a[j];a[j]=t;} } void Input(int *p,int n) { cout<<\输入\个整数:\\n\for(int i=0;i void Output(int * p,int n) { for(int i=0;i cout<<\输入要排序数的个数(小于200):\cin>>num; Input(x,num);sort(x,num);Output(x,num); } i 2. 在C++中,字符串常量“Students”的值是_该字符串的首地址_。 3. 设有语句“int x[4][3]={3,4,5,6,7,8,9,10,11,12};”,则x[3][2]的初值是__0__。 4. 设有语句“int a[10];”,则a的值是_数组a的起始地址_。 5. 以下程序的执行结果是__0 2 4 6 。 #include { int a[]={5,6,7,8},i; func(a); for(i=0;i<4;i++) cout< void func(int b[]) { int j; for(j=0;j<4;j++) b[j]=2*j; } 6. 以下程序的执行结果是_s=55___ 。 #include for(i=1;i<=10;i++) s=sum(i); cout<<\} int sum(int k) { static int x=0; return(x+=k); } 7. 以下程序的执行结果是__5678901234__ 。 #include void fun(int *s,int nl,int n2) { int i,j,t; i=nl;j=n2; while(i { t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i++; j--; } } void main() { int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a; fun(p,0,3);fun(p,4,9);fun(p,0,9); for(i=0;i<10;i++) cout<<*(a+i); cout< 8. 以下程序的执行结果是_120_ 。 #include for(i=0;i<=n;i++) r=r*b[i]; return r; } void main ( ) { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); cout< 9. 已知f定义为double f[4][3]={{1,2},{5},{6,7,8}};则f共有___6__个值为0的元素。 10. 下面程序运行后输出的结果是____4_3___ 。 #include { char a[]=\ int i1=0,i2=0,i=0; while(a[i]) { if(a[i]=='a') i1++; if(a[i]=='b') i2++; i++; } cout< } 11. 下面程序运行后输出的结果是___c_e_g_ 。 #include { char s[][5]={\ int x,y; for(x=0;x<3;x++) for(y=0;y<4;y++) { int z=x+y; if(z==3) cout< 12. 执行完 int data[ ]={0,1,2,3,4,5}; #define SIZE sizeof(data)/sizeof(data[0]) 则SIZE的值为_6___。 13. 执行语句序列 char s[20]=\程序设计\ cout< 输出结果是____8___。 14. 执行语句序列 char s1[20]=\ strcat(s1,strcat(s2,s3)); 后s1,s2,s3的值分别是___(1)___ 、___(2)___ 、ccccc 。 Aaabbbbccccc bbbbccccc 15. 执行语句序列 char s1[10]=\int k=0,j=0; while(s2[k]) k++; while(s1[j]) s2[--k]=s1[++j]; 后,数组s2中的字符串是__XYZ__ 。 16. 执行语句序列 char s1[ ]=\for(int i=0;s2[i]=s1[i];i++); 后,数组s2中的字符串是__ABCD__。 17. 字符串\zht\\n\占用的存储单元为___9__。 18. 有程序如下,运行后输出的是___16__。 #include 6,0,7}}; for(int i=0,s=0;i<4;i++) for(int j=0;j<4;j++) { if(a[i][j]<0)continue; if(a[i][j]==0)break; s+=a[i][j]; } cout< 19. 以下程序输出的第一行是_221___,第二行是__y=0___。 #include cout<<\} 20. 设有语句“ char s[ ]=\; int m=strlen(s);”,则m 的值是_5___。 21. 设有语句”char s[]=\m=sizeof(s);”,则m的值是__7__。 22. 52.若有宏定义: #define N 3 #define Y(n) ((N+1)*n) 则执行语句“z=2*(N+Y(N+2));”后,z的值为 __34___。 23. 以下程序的输出结果是 __200,100__。 #include void f(int &a,int &b){int t=a;a=b;b=t;} void main(void) { int x=100,y=200; f(x,y); cout< 24. 在C++中,函数名的值是_函数的入口地址__。 25. 若有宏定义: #define T(x,y,z) x*y*z/4 则表达式T(8-3,2*4,2+3)的值是__-40__。 26. 以下程序输出结果的第一行是_1 2 3 4 5__,第二行是__7____。 #include void main(void) { k=5; for(int i=0;i<5;i++){ int k;k=i+1; cout< cout<<'\\n'< 27. 以下程序输出的第一行是____2____,第三行是____24___。 #include void main(void) { for(int k=1;k<=4;k++) cout< 28. 以下程序使用递归函数实现单向链表操作,完成链表的创建和显示、释放链表的结点。 #include void ShowChain(node *head) //依次输出每一个结点上的数据 { if(head) { cout< if(head->next) ShowChain(____(1)____); } } void AddNode(node *p,node *&head) //将p所指向的结点插入链尾 { if(head==NULL) head=____(2)____; else AddNode(p,head->next); } void DeleteChain(node *head) { node *p=head; if(p) {head=___(3)____; delete p; if(head) DeleteChain(head); } } void main(void) {node *head=NULL,*temp; temp=new node; while(2) { temp->next=NULL; cout<<\输入数据:\ cin>>temp->data; if(temp->data>0) AddNode(temp,head); //将新结点加入链表的尾部 else { delete temp; break; } temp=new node; } ShowChain(head); DeleteChain(head); } head->next p head->next/p->next 29. 执行以下语句序列后,y的值为____17___。 #define S(x) x*x int y,z=5; y=S(z+2); 30. #include { if(k<1) return f(n/10,k+1); else return(n); } void main(void) { int y1=f(45678,3); int y2=f(5432,2); int y3=f(987,1); int y; y=y1+y2+y3+f(23,0); cout<<\<<\} 程序输出的第一行是 ____y1=8___,第三行是___y3=7______。 31. 运行以下程序后输出的第二行是___6__,第四行输出的是__20_____。 #include if(n==3) return x; else return x+f(n+1,x+1); } void main(void) { cout< 32. 如果一函数直接或间接地调用自身,这样的调用称为__递归调用__。 33. 已知函数f的定义是: int f(int n) { n*=2; return n+1;} 则执行 int m=6,n=2; m=f(n); 后,m和n的值分别是__5__2____。 34. 已知函数f的定义是: int f(int n,int m=8) { return n*m;} 则执行 int a=3; cout< 后输出的结果是___24_____。 35. 下面程序运行后输出的第二行是___10_35_5______ 。 #include void main() { int a=10,b=20;