一、单选 共20题 (共计20分)
第1题 (1.0分) 题号:7144 难度:中 第8章
若有以下程序
#include
void sp(int *a)
{ int b=2;
*a = *a * 2; printf("%d,", *a);
a=&b; *a = *a * 2; printf("%d,", *a);
}
main()
{ int k=3;
sp(&k); printf("%d\n", k);
}
则程序的输出结果是
A:6,12,12
B:6,4,3
C:6,4,6
D:9,4,9
第2题 (1.0分) 题号:7213 难度:中 第8章
有以下程序
#include
main()
{
char c[2][5]={"6938","8254" }, *p[2];
int i, j, s=0;
for( i=0; i<2; i++ ) p[i]=c[i];
for( i=0; i<2; i++ )
for( j=0; p[i][j]>0 ; j+=2 ) s=10*s+p[i][j]-'0';
printf("%d\n",s);
}
程序运行后的输出结果是
A:6938
B:9824
C:4528
D:6385
第3题 (1.0分) 题号:7112 难度:中 第8章
若有以下程序
#include
void sp(int *a)
{ int b=2;
a=&b; *a = *a * 2; printf("%d,", *a);
}
main()
{ int k=3, *p=&k;
sp(p); printf("%d,%d\n", k, *p);
}
则程序的输出结果是
A:4,3,3
B:4,3,4
C:6,3,6
D:6,6,6
第4题 (1.0分) 题号:7058 难度:中 第8章
有以下程序
#include
#include
void fun(char *s[], int n)
{ char *t; int i, j;
for (i=0; i for (j=i+1; j if (strlen(s[i]) > strlen(s[j])) { t = s[i]; s[i] = s[j]; s[j] = t; } } main() { char *ss[]={"bcc","bbcc","xy", "aaaacc", "aabcc"}; fun(ss, 5); printf("%s,%s\n", ss[0],ss[4]); } 程序的运行结果是 A:aaaacc,xy B:xy,aaaacc C:bcc,aabcc D:aabcc,bcc 第5题 (1.0分) 题号:7003 难度:中 第8章 有以下程序 #include struct S{ int n; int a[20]; }; void f(int *a, int n) { int i; for (i=0; i a[i]+=i; } main() { int i; struct S s={10, {2,3,1,6,8,7,5,4,10,9}}; f(s.a, s.n); for (i=0; i printf("%d,", s.a[i]); } 程序运行后的输出结果是 A:2,3,1,6,8,7,5,4,10,9, B:3,4,2,7,9,8,6,5,11,10, C:2,4,3,9,12,12,11,11,18,9, D:1,2,3,6,8,7,5,4,10,9, 第6题 (1.0分) 题号:7229 难度:中 第8章 以下叙述中正确的是 A:int* p1; int ** p2; int *p3;都是合法的定义指针变量的语句 B:指针变量只能通过求地址运算符(&) 来获得地址值 C:语句p=NULL;与p=\0;是等价的语句 D:语句p=NULL;执行后,指针p指向地址为0的存储单元 第7题 (1.0分) 题号:7182 难度:中 第8章 以下fun函数的功能是将形参s所指字符串内容颠倒过来 void fun( char *s ) { int i, j, k; for( i=0, j=strlen(s) __________ ; i { k=s[i]; s[i]=s[j]; s[j]=k; } } 在横线处应填入的内容是 A:1 B:-1 C:0 D:,k=0 第8题 (1.0分) 题号:6863 难度:中 第8章 有以下程序: #include #include main() { int *a,*b,*c; a=b=c=(int *)malloc(sizeof(int)); *a=1;*b=2,*c=3; a=b; printf("%d,%d,%d\n",*a,*b,*c); } 程序运行后的输出结果是(). A:1,1,3 B:2,2,3 C:1,2,3 D:3,3,3 第9题 (1.0分) 题号:7268 难度:中 第8章 在32位编译器上,设有定义 char *str1 = "Hello", str2[] = "Hello"; , 则以下语句 printf("%d %d", sizeof(str1), sizeof(str2)); 的输出结果是 A:5 6 B:5 5 C:6 6 D:4 6 第10题 (1.0分) 题号:7332 难度:中 第8章 有以下程序 #include #include void fun( int *p1, int *p2, int *s) { s=( int*)calloc(1,sizeof(int)); *s=*p1+*p2; free(s); } main() { int a[2]={1,2}, b[2]={40,50},*q=a; fun(a,b,q); printf("%d\n", *q); } 程序运行后的输出结果是 A:42 B:41 C:1 D:0