admin 管理员组文章数量: 887021
2024年2月18日发(作者:特效相机推荐)
★第1 题:
阅读程序,选择程序的运行结果 ___A___。
#include
main()
{ int x;
x=try(5);
printf( “%dn ”, x);
}
try(int n)
{ if(n>0) return(n*try(n-2));
else return(1);
}
A. 15
B. 120
C. 1
D. 前面3个答案均是错误的
第2 题:
在下列结论中,只有一个是正确的,它是 ___A___。
A. 递归函数中的形式参数是自动变量
B. 递归函数中的形式参数是外部变量
C. 递归函数中的形式参数是静态变量
D. 递归函数中的形式参数可以根据需要自己定义存储类型
★第3 题:
阅读程序,选择程序的输出结果 __A___。
#include
f(int x, int y)
{ return(y-x);
}
main()
{ int (*g )(int,int);
int a=5, b=6, c=2;
g=f;
c=(*g)(a,b);
printf( “%dn”, c);
}
A. 1
B. 2
C. 3
D. 前面3个答案均是错误的
第4 题:
阅读程序,选择程序的输出结果 __D___。
#include
char *p= ”abcdefghijklmnopq ”;
main()
{ while(*p++!=’e’);
printf( “%cn ”, *p);
}
A. c
B. d
C. e
D. f
★第6 题:
阅读程序,选择程序的输出结果 ___D___。
#include
void prtv(int *x)
{ printf( ”%dn ”, ++*x);
}
main()
{ int a=25;
prtv(&a);
}
A. 23
B. 24
C. 25
D. 26
第7 题:
阅读程序,选择程序的输出结果 ___B___。
#include
main()
{ static char a[ ]= ”language ”, b[]= ”program ”;
char *ptr1=a, *ptr2=b;
int k;
for(k=0; k<7; k++)
if(*(ptr1+k)==*(ptr2+k))
printf( ”%c”, *(ptr1+k));
}
A.
gae
B.
ga
C.
language
D. 有语法错误
★第8 题:
函数调用strcat(strcpy(str1, str2), str3) 的功能是__C___。
A. 将串str1复制到串str2中 ,然后再连接到 str3之后
B. 将串str1连接到串str2之后 ,再复制到 str3之中
C. 将串str2复制到串str1中 ,然后再将串 str3连接到串str1之后
D. 将串str2复制到串str1中,再将串str1连接到str3之后
★第9 题:
设有以下程序段,则在 main函数中使用语句__D___是无意义的。
main()
{ int min();
int a, b, c, (*p)();
p=min;
…
}
min(x, y)
int x, y;
{
…
}
A. printf( ”%dn ”, min(a,b));
B. c=min(a, b);
C. c=(*p)(a,b);
D. p++;
第10 题:
已知static int a[2][3]={2,4,6,8,10,12};
A. *(a+1)
正确表示数组元素地址的是 __A___。
B. *(a[1]+2)
C. a[1]+3
D. a[0][0]
第11 题:
已知int i, x[3][4]; 则不能将x[1][1]的值赋给变量i的语句是___C___。
A. i=*(*(x+1)+1)
B. i=x[1][1]
C. i=*(*(x+1))
D. i=*(x[1]+1)
★第12 题:
当c的值不为0时,在下列选项中能够将 c的值赋给变量a、 b的是___C____.
A. c=b=a;
B. (a=c)||(b=c);
C. (a=c)&&(b=c);
D. a=c=b;
第13 题:
函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此
功能的函数是___D___。
A. funa(int *x, int *y)
{ int *p;
*p=x; *x=*y; *y=*p;
}
B. funb(int x, int y)
{ int t;
t=x; x=y; y=t;
}
C. func(int *x, int *y)
{ *x=*y; *y=*x;
}
D. fund(int *x, int *y)
{ *x=*x+*y; *y=*x-*y; *x=*x-*y;
}
第14 题:
已知int x[]={1,3,5,7,9,11}, *ptr=x;
A. *(ptr--)
B. *(--ptr)
C. *(ptr++)
则不能正确引用数组元素的语句是 ___B___。
D. *(++ptr)
第15 题:
已知int*ptr1, *ptr2; 均指向同一个int类型一维数组中的不同元素,k为int类型变量,
则下面错误的赋值语句是___B___。
A. k=*ptr1+*ptr2;
B. ptr2=k;
C. ptr1=ptr2;
D. k=*ptr1*(*ptr2);
★第16 题:
已知chars1[10], *s2=
___A____。
A. ab
B. cdef
”ab0cdef ”; 则执行语句strcpy(s1,s2); 后 ,变量s1的内容为
C. ab0cdef
D. 内容不定
第17 题:
以下有关宏替换叙述中,错误的是 ___D___。
A. 宏替换不占用运行时间
B. 宏无类型名
C. 宏替换只是字符替换
D. 宏名必须用大写字母表示
★第18 题:
C语言主函数main最多允许有___B___个参数。
A. 1
B. 2
C. 0
D. 3
★第19 题:
C语言的编译系统对宏定义是___D___。
A. 在程序运行时进行替换处理
B. 在程序连接时进行处理
C. 和源程序中其他C语句同时进行编译的
D. 在对源程序中其他成分正式编译之前进行处理的
第20 题:
已知int **p; 则变量p是___B___。
A. 指向int的指针
B. 指向指针的指针
C. int型变量
D. 以上3种说法均是错误的
★第21 题:
已知int i; char *s= ”a045+045 ’b” ; 执行语句for(i=0; *s++; i++); 之后,变量i
的结果是__B___。
A. 7
B. 8
C. 9
D. 以上3个答案都是错误的
第22 题:
已知int i=0, j=1, *p=&i, *q=&j;
A. i=*&j;
错误的语句是___D___。
B. p=&*&i;
C. j=*p++;
D. i=*&q;
第23 题:
已知int a[]={1,2,3,4,5,6,7,8,9,10,11,12}, *p=a; 则值为3的表达式是___A___。
A. p+=2, *(p++)
B. p+=2, *++p
C. p+=3, *p++
D. p+=2, ++*p
★第24 题:
已知int a[3][4], *p=a; p+=6; 那么*p和__D___的值相同。
A. *(a+6)
B. *(&a[0]+6)
C. *(a[1]+2)
D. *(&a[0][0]+6)
第25 题:
已知int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*ptr)[3]=a, *p=a[0]; 则以下能够正
确表示数组元素a[1][2]的表达式是__D___。
A. *((ptr+1)[2])
B. *(*(p+5))
C. (*ptr+1)+2
D. *(*(a+1)+2)
第26 题:
已知char **s; 正确的语句是__B___。
A. s= ”computer ”;
B. *s=”computer ”;
C. **s= ”computer ”;
D. *s=’A’;
★第27 题:
已知char s[20]= ”programming ”, *ps=s; 则不能引用字母o的表达式是__A___。
A. ps+2
B. s[2]
C. ps[2]
D. ps+=2, *ps
第28 题:
已知char b[5], *p=b; 则正确的赋值语句是__C__。
A. b= ”abcd ”;
B. *b=”abcd ”;
C. p= ”abcd ”;
D. *p= ”abcd ”;
★第29 题:
已知char s[100]; int i; 则在下列引用数组元素的语句中,错误的表示形式是 ___D___.
A. s[i+10]
B. *(s+i)
C. *(i+s)
D. *((s++)+i)
第30 题:
已知char s[10], *p=s; 则下列语句中,错误的语句是 __B___。
A.
p=s+5;
B.
s=p+s;
C. s[2]=p[4]
D. *p=s[0];
第31题:(103)
以下程序的输出结果是___D___。
#include
main()
{
int x=10, y=10;
printf( “%d %dn ”, x--, --y);
}
A. 10 10
B. 9 9
C. 9 10
D. 10 9
第32 题:
已知double *p[6]; 它的含义是___C___。
A. p是指向double类型变量的指针
B. p是double类型数组
C. p是指针数组
D. p是数组指针
★第33 题:
说明语句int *(*p)(); 的含义是___D___。
A. p是一个指向int型数组的指针
B. p是指针变量,它构成了指针数组
C. p是一个指向函数的指针,该函数的返回值是一个整型
D. p是一个指向函数的指针,该函数的返回值是一个指向整型的指针
第34 题:
已知int a, *p=&a; 则下列函数调用中错误的是 ___D___。
A. scanf(”%d”, &a);
B. scanf(”%d”, p);
C. printf(”%d”, a);
D. printf(”%d”, p);
第35 题:
已知int *p, a; 则语句p=&a; 中的运算符&的含义是___D___。
A. 位与运算
B. 逻辑与运算
C. 取指针内容
D. 取变量地址
第36 题:
下面程序的功能是将字符串 s中所有的字符“c”删除。 请选择填空。
# include
main()
{ char s[80];
int i, j;
gets(s);
for(i=j=0; s[i]!=’ 0’; i++)
if(s[i]!=’c’) ___A____
s[j]!=’0’;
puts(s);
}
A. s[j++]=s[i];
B. s[++j]=s[i];
C. s[j]=s[i]; j++;
D. s[j]=s[i]
第37 题:
阅读下列程序,选择程序的运行结果 ___B___。
#include
main()
{ int i, k, a[10], p[3];
k=5;
版权声明:本文标题:C语言试题选择题及答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1708262505h517934.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论