还有一周就要期末了!快把学校的题库做一遍吧 ,说不定期末原题就在其中!!!
(C++题库附详细答案)
选填答案:
第一次实验1-5daa
第二次实验1-5bacba 6-10bb
1. 14 2
2. 6
第三次实验1-5abcba 6-10cddbb 11-13add
1.2 3
2、8
3、5
第四次实验1-5bcbbd 6-10b
1\120
2\23
3\x=4
4\*
5\5
第五次实验1-5adcac 6-10bddd
第六次实验1-5ccdbd 6-10cbcbc 11-12bd
第七次实验1-5dbccd 6c
1\5,6.00
2\600
3\15
第八次实验1-5dbcbc 6-10abacc 11-15xcddd 16-20daaaam21-25bdcba
1\i=j
2\4 2
3\不正确
4、a=10,b=20
5\C B
6\language OK!
7\60
1、在C语言中的if语句中,用作判断的表达式为
A 关系表达式
B 逻辑表达式
C 算术表达式
D 任意表达式
2、一个C程序的执行是从
A. 本程序的main函数开始,到main函数结束
B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C. 本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
3、已知:char a=’a’;float b=2.3;double c=41;int d;则执行语句d=a+b+c;后变量d的数据类型为
(A) int (B) char (C) float (D) double
1、设字符型变量ch中存放字符'A',则执行'ch+++5'后,ch中的字符是 【 正确答案: 】
A. A
B. B
C. F
D. G
2、下列哪个数不是正确的int类型 【 正确答案: 】。
A 32768 B -32768 C 057 D 0xAC
3、设整型变量x和y的值均为7,则表达式"x/(y-4)"的值是 【 正确答案: 】
A. 3
B. -3
C. 2
D. 1
4、执行以下程序段后,变量a,b,c的值分别为 【 正确答案: 】。
int x = 10, y = 9;
int a, b, c;
a = (--x == y++)? --x: ++y;
b = x++;
c = y;
A)a = 9, b = 9, c = 9
B)a = 8, b = 8, c = 10
C)a = 9, b = 10, c = 9
D)a = 9, b = 10, c = 11
5、已知:char a=’a’;float b=2.3;double c=41;int d;则执行语句d=a+b+c;后变量d的数据类型为 【 正确答案: 】
(A) int (B) char (C) float (D) double
6、若定义int i=3, 则表达式i+++i+++i的值是 【 正确答案: 】。
A 9 B 12 C 15
7、字符串"\ta\017bc"的长度(不包括结束符)是 【 正确答案: 】
(A) 9
(B) 5
(C) 6
(D) 7
1、已知 int a=8,则运算a+=a-=a/a后a的值为 14 【 正确答案: 】, 运算表达式a+=a%=2+a/a后a的值为 4 【 正确答案: 】。
2、已知:int a=5,b=6,w=1,x=2,y=3,z=4;执行语句“(a=w>x)&&(b=y>z);”后b 的值为 6 【 正确答案: 】
1、选择运行结果 【 正确答案: 】。
#include
using namespace std;
int main()
{ int n=4;
while(n--)
printf("%d ",--n);
}
(A)2 0
(B)3 1
(C)3 2 1
(D)2 1 0
2、写出下述程序的输出结果 【 正确答案: 】
#include
using namespace std;
int main()
{
int a=0,b=0,c=1,d=10;
if (a) d=d-5;
else if (c)
if (!b) d==15;
else d==25;
printf("%d\n",d);
}
A:5
B:10
C:15
D:25
3、以下程序的运行结果是 【 正确答案: 】
#include
using namespace std;
int main()
{
int s=1,t=1,a=5,b=2;
if (a>0)
s++;
if (a>b)
t+=s;
else if (a==b)
t=5;
else
t=2*s;
printf("s=%d,t=%d\n",s,t);
}
A:s=2,t=5
B:2,3
C:s=2,t=3
D:s=2,t=4
4、给出下述程序的输出结果 【 正确答案: 】
#include
using namespace std;
int main()
{
int a=5,b=0,c=0;
if(a=b+c)
printf("***");
else
printf("$$$");
}
A:***
B:$$$
C:***$$$
D:$$$***
5、请选择下列程序的运行结果 【 正确答案: 】。
#include
using namespace std;
int d=1;
fun(int p)
{
int d = 5;
d+= p++;
cout<
}
int main()
{
int a=3;
fun(a);
d += a++;
cout<
}
(A)8 4
(B)9 6
(C)9 4
(D)8 5
6、若有变量定义int a; double b; 要输入数据存放在a和b中,则下面正确的输入数据的语句为: 【 正确答案: 】
A. scanf("%d%f",a,b);
B. scanf("%d%f",&a,&b);
C. scanf("%d%lf",&a,&b);
D. scanf("%d%lf",a,b);
7、下面程序段执行结果为 【 正确答案: 】。
char c = '0'+2;
switch (c){
case 1: printf("A"); break;
case '2' : printf("B");
case 2: printf("C");
default: printf("D");
};
A) A
B) D
C) BC
D) BCD
8、在执行以下程序过程中
#include
void main() {
char c1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
printf("%c%c\n",c5,c6);
}
如果输入数据:
987
65432
(注意:从第一列开始,
输出结果为 【 正确答案: 】
(A)9843
(B)9854
(C)9832
(D)9865
9、以下不正确的语句是 【 正确答案: 】
(A) if (x > y);
(B) if (x = y) && ( x!= 0) x += y;
(C) if (x !=y) scanf("%d", &x); else scanf("%d", &y);
(D) if (x < y) {x++; y++;}
若有以下语句
int x = 3;
do {
printf("%d\n", x -= 2);
} while (!(--x));
10、则上面程序段 【 正确答案: 】
(A) 输出的是1
(B) 输出的是1和-2
(C) 输出的是3和0
(D) 是死循环
11、C语言中while和do-while循环的主要区别是 【 正确答案: 】
(A) do-while的循环体至少无条件执行一次
(B) while的循环控制条件比do-while的循环控制条件严格
(C) do-while允许从外部转到循环体内
(D) do-while的循环体不能是复合语句
12、 在C语言中的if语句中,用作判断的表达式为 【 正确答案: 】
A 关系表达式
B 逻辑表达式
C 算术表达式
D 任意表达式
13、有输入语句:int a,b,c; scanf("a=%d,b=%d,c=%d", &a, &b, &c); 为使变量a的值为1,b的值为3,c的值为2,
1、从键盘输入数据的正确形式应当是 【 正确答案: 】(注:#表示空格)
(A) 132<回车>
(B) 1,3,2<回车>
(C) a=1#b=3#c=2<回车>
(D) a=1,b=3,c=2<回车>
以下程序的运行结果是 2 3 【 正确答案: 】
#include
using namespace std;
int main()
{
int k=2;
switch(k)
{
case 1:cout< break; case 2:cout< case 3:cout< break; case 4:cout< default:cout<<"Full!"; } } 2、给出下述程序的执行结果 8 【 正确答案: 】 #include using namespace std; long fib (int x) { switch(x) { case 0: return 0; case 1: case 2: return 1; } return (fib(x-1)+fib(x-2)); } int main() { int x=6; cout< } 3、程序结果 #include using namespace std; int main() { int x=4; if (x++>5) printf("%d\n",x); else printf("%d\n",x--); } 1、以下正确的描述是 【 正确答案: 】 (A) continue语句的作用是结束整个循环的执行 2、以下正确的函数声明形式是 【 正确答案: 】 (A) double fun(int x, int y) 3、对 for (表达式1; ; 表达式3)可理解为 【 正确答案: 】 4、下列关于switch语句和break语句的结论中,正确的是 【 正确答案: 。 5、以下程序的输出结果是 【 正确答案: 】。 6、给出下述程序的输出结果 【 正确答案: 】 #include using namespace std; int main() { int a,b; for(a=1,b=1;a<=100;a++) { if (b>=20) break; if(b%3==1) { b+=3; continue; } b-=5; } printf("%d,%d\n",a,b); } A:7,22 B:8,22 C:9,22 D:8,19 1、下面程序段的执行结果是 【 正确答案: 】 int a,b,c,t; 2、以下程序的运行结果是 【 正确答案: 】 #include using namespace std; int main() { int k=2; switch(k) { case 1:printf("%d",k++); break; case 2:printf("%d",k++); case 3:printf("%d",k++); break; case 4:printf("%d",k++); default:printf("Full!"); } } 3、给出下述程序的输出结果 【 正确答案: 】 #include using namespace std; int main() { int x=0; char ch='A'; do{ switch(ch++) { case 'A': x++;break; case 'B': x--; case 'C': x+=2;break; case 'D': x=x%2;continue; case 'E': x=x*10;break; default: x=x/3; } x++; }while(ch<'G'); printf("x=%d\n",x); } 4、下述程序的输出结果是 【 正确答案: 】 #include using namespace std; int main() { int x=3,y; do{ y=x--; if(!y) { printf("*\n"); continue; } }while(1<=x<=2); } 5、以下程序的运行结果是 【 正确答案: 】 #include using namespace std; int main() { int x=4; if (x++>5) printf("%d\n",x); else printf("%d\n",x--); } 6、有以下程序: #include using namespace std; int main() { int i=1; switch(i) { case 1: printf("%d",i++); case 2: printf("%d",i++); case 3: printf("%d",i++); case 4: printf("%d",i++); break; default: printf("END"); } } 上述程序的输出结果为 【 正确答案: 】 1、在C++语言中,形参的隐含存储类别是 【 正确答案: 】 2、在一个C++源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 【 正确答案: 】 (A) extern 3、设有函数模板 template T max(T a,T b) { return (a>b)?a:b; } 则下列语句中对该函数模板的错误使用是 【 正确答案: 】。 (a)max(1,2) (b)max(2.3,4.5) (c)max(1,2.3) (d)max(‘a’,’b’) 4、程序输出结果是 【 正确答案: 】 #include using namespace std; #define SUB(X,Y) (X)*Y 5、以下说法中正确的是 【 正确答案: 】。 6、在C++语言程序中,以下正确的描述是 【 正确答案: 】 7、在C++语言中,调用函数时,下列说法正确的是 【 正确答案: 】 8、以下不正确的说法是 【 正确答案: 】. 9、请选择下列程序的运行结果 【 正确答案: 】。 #include using namespace std; int Try () { static int x=3; x++; return (x); } int main () { int i,x; for(i=0;i<=2;i++) x = Try(); printf("%d\n",x); } (A)3 1、以下各组 选项中,均能正确定义二维数组a的选项是 【 正确答案: 】 2、已知:int i,x[3][3] = { 1,2,3,4,5,6,7,8,9}; 3、如果数组名作为函数调用的实参,则传递给形参的是 【 正确答案: 】。 4、对以下说明语句的正确理解是 【 正确答案:】 5、以下在任何情况下计算平方数时都不会引起二义性的宏定义是 【 正确答案: 】 6、以下程序的运行结果是 【 正确答案: 】。 A 14.0 B 3 C 7.5 D 10.5 7、若有宏定义:#define INTEGER(x,y) x/y 8、下述对C++语言字符数组的描述中错误的是 【 正确答案: 】 9、有如下定义: 10、当文件包含预处理命令#include后面的文件名用尖括号(<>)括起来时,寻找被包含文件方式是 【 正确答案: 】 以下对二维数组a进行正确的初始化的是 【 正确答案: 】 11、已知以下程序段, 【 正确答案: 】。 1、如果数组名作为函数调用的实参,则传递给形参的是 【 正确答案: 】。 2、以下给字符数组str定义和赋值正确的是 【 正确答案: 】 3、下述对C++语言字符数组的描述中错误的是 【 正确答案: 】 4、在定义 int a[2][3]; 之后,对a的引用正确的是 【 正确答案: 】 5、下面程序段的运行结果是 【 正确答案: 】。(其中#表示空格) 6、在定义 int a[5][6];后,第10个元素是 【 正确答案: 】 1】以下程序的运行结果是 【 正确答案: 】 #include using namespace std; int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int k,s,i; float ave; for (k=s=i=0;i<10;i++) { if (a[i]%2!=0) continue; s+=a[i]; k++; } if (k!=0) { ave=s/k; printf("%d,%.2f\n",k,ave); } } 2、下面程序段的运行结果是 【 正确答案: 3、以下程序运行后,k的值是 【 正确答案:】 #include using namespace std; #define MIN(x, y) (x) < (y)? (x): (y) int main() { int i = 10, j = 15, k; k = 10 * MIN (i, j); } 1、若有说明: char *language[] = {"FORTRAN", "BASIC", "PASCAL", "JAVA", "C"};则以下不正确的叙述是 【 正确答案: 】 2、以下正确的说明语句是 【 正确答案: 】 3、若有以下定义,则数值不为3的表达式是 【 正确答案: 】 (A) x[3] 4、若有下面的程序片断: (A) void sort ( char p[ ][ ], int x ); 5、以下与 int *q[5]; 等价的定义语句是 【 正确答案: 】 6、若定义了int i, *p; 则能通过scanf函数给输入项读入数据的程序段是 【 正确答案: 】 (A) p = &i; scanf ( "%d", p ); 7、若有定义语句 int (*p)(); ,则p的含义是 【 正确答案: 】 8、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为 【 正确答案: 】 (A) 自动(auto) 9、若有说明: char *language[] = {"FORTRAN", "BASIC", "PASCAL", "JAVA", "C"};则表达式 *language[1] > *language[3] 比较的是 【 正确答案: 】 10、下面能正确进行字符串赋值,并且能确保字符串以'\0'结尾的操作是 【 正确答案: 】 11、若有: 12、设有说明 int (* ptr) [M]; 其中ptr是 【 正确答案: 】 13、已知int a, *p=&a; 则下列函数调用中错误的是 【 正确答案: 】 14、说明语句 int *(*p)();的含义是 【 正确答案: 】 15、下列不属于C++语言关键字的是 【 正确答案: 】。 16、设有下面的程序段: 17、假设已定义double (*sin)();有一个函数的定义如下: 18、阅读程序,选择程序的输出结果。 【 正确答案: 】 #include using namespace std; int main() { static int a[2][3] = {{1,2,3},{4,5,6}}; int m, *ptr; ptr = &a[0][0]; m=(*ptr)*(*(ptr+2))*(*(ptr+4)); printf("%d\n",m); } A.15 19、已知:int a[]={1,2,3,4},y,*p = &a[1];则执行语句“y=(*--p)++;”之后,变量y的值为 【 正确答案: 】 20、以下程序段的输出是 【 正确答案:】。 static char a[] = "-12345"; int k=0,symbol,m; if(a[k]=='+'||a[k]=='-') symbol=a[k++]=='+'?1:-1; for(m=0;a[k]>='0'&&a[k]<='9';k++) m = m*10+a[k]-'0'; printf("number = %d\n",symbol*m); (A)number = -12345 21、设 char **s; 以下正确的表达式是 【 正确答案: 】 22、下面程序的运行结果是 【 正确答案: 】. #include #include using namespace std; void fun(char *s) { char a[7]; s = a; strcpy(a, "look"); } int main() { char *p; fun (p); puts(p); } (A)look### 23、若有函数 max(a, b), 并且已使函数指针变量p指向函数max,当使用指针调用该函数时,正确的调用方法是 【 正确答案: 】. 24、已知:char *s="\t\"Name\\Address\n";则s所指的字符串的长度为 【 正确答案: 】。 25、下面关于字符串的说明中,错误的是 【 正确答案: 。 1、函数int min(int *x, int n)计算并返回具有n个元素的数组x中的最小元素的下标(该函数不是递归函数)。请填空(表达式中间不要有空格)。 2、给出下述程序的执行结果 【 正确答案: 】 #include using namespace std; int main() { int a[4] = {1,2,3,4}; int *p; p=&a[2]; printf("%d ",++*p); printf("%d\n",*--p); } 3、如果想输出字符串"hello",下列程序是否正确?如果正确,答案处填写正确;如果不正确,答案处填写不正确。 【 正确答案: #include using namespace std; void func(char *q) { char a[]="hello"; q=a; } int main() { char *p, b[]="hey"; p=b; func(p); cout<
} 4、给出下述程序的执行结果 【 正确答案:】 #include using namespace std; void swap(int *p, int *q) { int *t; t=p; p=q; q=t; } int main() { int a=10,b=20; swap(&a,&b); printf("a=%d,b=%d\n",a,b); } 5、下面程序的功能是将字符串 s 中的内容按逆序输出,但不改变串中的内容, #include using namespace std; void inverp(char *a) { if (_______________) return; inverp(a+1); printf("%c",______________); } int main() { char s[10] = "hello!"; inverp(s); } 空 1 : 空 2 : 6、以下程序的运行结果是 【 正确答案:】 #include using namespace std; char *strc(char *s1,char *s2) { char *p=s1; while (*s2!='\0') { *p++=*s2++; } return s1; } int main() { char s1[30]="computer OK!",s2[]="language",*pt; pt=strc(s1,s2); cout< } 7、以下程序的运行结果是 【 正确答案:】 #include using namespace std; int main() { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int (*p)[4]=a,i,j,k=0; for (i=0;i<3;i++) for (j=0;j<2;j++) k+=*(*(p+i)+j); printf("%d\n",k); }第四次实验
(B) 只能在循环体内和switch语句体内使用break语句
(C) 在循环体内使用break语句或continue语句的作用相同
(D) 从多层循环嵌套中退出时,只能使用goto语句
(B) double fun(int x; int y)
(C) double fun(int x, int y);
(D) double fun(int x, y);
(A) for (表达式1; 0; 表达式3)
(B) for (表达式1; 1; 表达式3)
(C) for (表达式1; 表达式1; 表达式3)
(D) for (表达式1; 表达式3; 表达式3)
(A)break语句是switch语句中的一部分
(B)在switch语句中可以根据需要使用或不使用break语句
(C)在switch语句中必须使用break语句
(D)break语句是switch语句的一部分
main()
{ int a=-1,b=4,k;
k = (++a<0)&&!(b--<0);
printf("%d%d%d\n",k,a,b);
}
(A)104
(B)103
(C)003
(D)004
a=1;
b=2;
c=2;
while(a {
t=a; a=b; b=t;
c--;
}
printf("%d,%d,%d", a, b, c);
第五次实验
(A)自动(auto)
(B)静态(static)
(C)外部(extern)
(D)寄存器(register)
(B) register
(C) auto
(D) static
int main()
{ int a=3,b=4;
printf("%d\n",SUB(a++,b++));
}
(A)12
(B)15
(C)16
(D)20
(A)c++语言程序总是从第一个定义的函数开始执行
(B)在c++语言程序中,要调用的函数必须在main()函数中定义
(C)c++语言程序总是从main()函数开始执行
(D)c++语言程序中的main()函数必须放在程序的开始部分
(A) 函数的定义可以嵌套,但函数的调用不可以嵌套
(B) 函数的定义不可以嵌套,但函数的调用可以嵌套
(C) 函数的定义和函数的调用均不可以嵌套
(D) 函数的定义和函数的调用均可以嵌套
(A) 实参占有独立的存储单元,形参不占存储单元。
(B) 实参和形参必须共用存储单元。
(C) 实参和形参是否共用存储单元由用户指定。
(D) 实参和形参各自占有独立的存储单元。
(A) 在不同函数中可以使用相同名字的变量
(B) 形式参数是局部变量
(C) 在函数内定义的变量只在本函数范围内有效
(D) 函数内定义的变量,在函数调用返回后,其值仍然存在可用
(B)4
(C)5
(D)6第六次实验
(A) int a[][4];
int a[2][];
(B) int a(2,3);
int a[][3]={{0},{0}};
(C) int a[][4]={{0},{0}};
int a[][4]={{0},{0},{0}};
(D) int a[3][4];
int a[][4];
则下面语句的输出结果是 【 正确答案: 】。
for(i=0;i<3;i++)
printf("%d ",x[i][2-i]);
(A)1 5 9
(B)1 4 7
(C)3 5 7
(D)3 6 9
A 数组中的全部元素的值
B 数组中第一个元素的值
C 数组中元素的个数
D 数组的首地址
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) 因为数组长度与初值的个数不相同,所以此语句不正确
(A) #define POWER(x) x * x
(B) #define POWER(x) (x) * (x)
(C) #define POWER(x) (x * x)
(D) #define POWER(x) ((x) * (x))
#define A 3.5
#define S(b) A*b*b
main()
{
int x=1,y=2;
printf("%4.1f\n",S(x+y));
}
则执行以下语句后
int z,a=15,b=100;
z=INTEGER(b,a);
printf("%d\n",z++);
输出结果为 【 正确答案: 】
(A) 宏定义非法
(B) 6
(C) 6.666667
(D) 7
(A) 字符数组可以存放字符串
(B) 字符数组的字符串可以整体输入,输出
(C) 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
(D) 不可以用关系运算符对字符数组中的字符串进行比较
int a[3][4][2];
则数组a的第10个元素是 【 正确答案: 】
(A) a[2][1][2]
(B) a[1][0][1]
(C) a[2][0][1]
(D) a[2][2][1]
(A) 先在源程序所在目录中搜索,然后按系统设定的标准方式搜索
(B) 只在当前目录搜索
(C) 只按系统设定的标准方式搜索
(D) 只在源文件所在目录中搜索
(A)int a[2][3] = {{1,2}, {3,4}, {5,6}};
(B)int a[][3] = {1,2,3,4,5,6};
(C)int a[2][] = {1,2,3,4,5,6};
(D)int a[2][] = {{1,2},{3,4}};
char a[3],b[]="China";
a=b;
printf("%s",a);
(A)运行后将输出China
(B)运行后将输出Ch
(C)运行后将输出Chi
(D)程序出错第七次实验
A 数组中的全部元素的值
B 数组中第一个元素的值
C 数组中元素的个数
D 数组的首地址
(A)char str[10]; str = {"China"};
(B)char str[] = "China";
(C)char str[10]; strcpy (str, "abcdefghijklmn");
(D)char str[10] = {"abcdefghigklmn"};
(A) 字符数组可以存放字符串
(B) 字符数组的字符串可以整体输入,输出
(C) 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
(D) 不可以用关系运算符对字符数组中的字符串进行比较
(A)a(1,2)
(B)a[1,3]
(C)a[1>2}[!1]
(D)a[2][0]
char a[7]="abcdef",b[4]="ABC";
strcpy(a,b);
printf("%c",a[5]);
(A)#
(B)\0
(C)e
(D)f
(A)a[2][5]
(B)a[2][4]
(C)a[1][3]
(D)a[1][5]
char ch[ ] = "600";
int a, s = 0;
for (a = 0; ch[a] >= '0' && ch[a] <= '9'; a++)
s = 10 * s + ch[a] - '0';
printf("%d", s);第八次实验
(A) language+2 表示字符串"PASCAL"的首地址
(B) *language[2]的值是字母P
(C) language是一个字符型指针数组,它包含5个元素,每个元素都是一个指向字符串变量的指针
(D) language包含5个相同长度的数组
(A) int *b[] = {1, 3, 5, 7, 9};
(B) int a[5], *num[5] = {&a[0], &a[1], &a[2], &a[3], &a[4]};
(C) int a[] = {1, 3, 5, 7, 9}; int *num[5] = {a[0], a[1], a[2], a[3], a[4]};
(D) int a[3][4], (*num)[4]; num[1] = &a[1][3];
int x[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p1;
(B) p1 = x + 3, *p1++
(C) p1 = x + 2, *(p1++)
(D) p1 = x + 2, *++p1
void main( )
{
int n;
char a[10][8];
......
sort(a, n);
......
}
则正确的sort函数头部是 【 正确答案: 】
(B) void sort ( char p[ ][8], int x );
(C) void sort ( char p[10][ ], int x );
(D) void sort ( char **p, int x );
(A) int q[5] ;
(B) int *q ;
(C) int *(q[5]) ;
(D) int (*q)[5] ;
(B) p = &i; scanf ("%d", i );
(C) *p = i; scanf ( "%d", p );
(D) *p = i; scanf ("%d", &p);
(A) p是一个函数,该函数返回指向整型数据的指针。
(B) p是一个指向函数的指针,该函数返回整型值。
(C) p是一个指向整型数据的指针变量。
(D) 以上说法都是错误的。
(B) 静态(static)
(C) 外部(extern)
(D) 寄存器(register)
(A) 字符F和字符P
(B) 字符串BASIC和字符串JAVA
(C) 字符B和字符J
(D) 字符串FORTRAN和字符串PASCAL
(A) char s[5] = {"ABCDE"};
(B) char s[5] = {'A', 'B', 'C', 'D', 'E'};
(C) char *s; s = "ABCDE";
(D) char *s; scanf("%s", s);
char *p[2][3] = {
"abc", "defg", "hi",
"jklmnop", "qrstuvwxyz", "ABCD"
};
则表达式(*(*(p+1)+1))[7]的值为 【 正确答案: 】
(A) M个指向整型变量的指针
(B) 指向M个整型变量的函数指针
(C) 一个指向具有M个整型元素的一维数组的指针
(D) 具有M个指针元素的一维指针数组,每个元素都只能指向整型量
(A) scanf("%d", &a);
(B) scanf("%d", p);
(C) printf("%d", a);
(D) printf("%d", p);
(A) p是一个指向int型数组的指针
(B) p是指针变量,它构成了指针数组
(C) p是一个指向函数的指针,该函数的返回值是一个整型
(D) p是一个指向函数的指针,该函数的返回值是一个指向整型的指针
(A)default
(B)register
(C)enum
(D)external
char s[] = "china";
char *p;
p = s;
则下列叙述正确的是 【 正确答案: 】
(A)s和p完全相同
(B)数组s中的内容和指针变量p中的内容相等
(C)s数组长度和p所指向的字符串长度相等
(D)*p与s[0]相等
void newprint(double (*f)(), double x)
{
printf("%f", (*f)(x));
}
则正确的调用语句是 【 正确答案: 】
(A)newprint(sin, 0.5);
(B)newprint(sin(0.5));
(C)newprint(&sin, 0.5);
(D)newprint((&sin)(0.5));
B.48
C.24
D.无定值
A.1
B.2
C.3
D.4
(B)number = 12345
(C)number = -10000
(D)number = 10000
(A)s = "computer";
(B)*s = "computer";
(C)**s = "computer";
(D)*s = ’c’;
(B)look
(C)look##
(D)不确定的值
(选项中的#表示空格)
(A)(*p)max(a, b);
(B)*pmax(a, b);
(C)(*p)(a, b);
(D)*p(a, b);
(A)19
(B)15
(C)18
(D)说明不合法
(A)char str[7]="FORTRAN";
(B)char str[]="FORTRAN";
(C)char *str="FORTRAN";
(D)char str[]={‘F','O','R','T','R','A''N','\0'};
int min(int *x, int n)
{
int i=0, j;
for(j=0; j
【
return i;
}
请选择填空(答案请填写所选择的两个字母,中间用空格格开,如A A的形式): 【 正确答案: 】
(A) *a != '\0'
(B) *a != NULL
(C) *a == '\0'
(D) ! a * == 0
(A) * (a-1)
(B) *a
(C) * (a+1)
(D) * (--a)