C试题及答案-.pdf
《C试题及答案-.pdf》由会员分享,可在线阅读,更多相关《C试题及答案-.pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.若有声明:int a43=1,2,3,4,5,6,*p=a1,(*q)3=a;则不能够输出的语句是C。A.printf(“%d”,a12);B.printf(“%d”,*(p+2);C.printf(“%d”,*(q+1);D.printf(“%d”,q12);2.已知函数f 定义为:void f(int a2,int*b)a0=*b;若 main 函数中声明了int x,y,t2=1,2;且在 main 函数中需要调用 f 函数,则以下函数调用语句中错误的是D,C。A f(&y,&x)B f(t,t+1)C y=f(&t0,&x)D.f(x,y)3.以下函数的功能是B。A字符串复制B.计
2、算 x 指向的字符串的长度C比较两个字符串的长度D.将 x 指向的字符串连接到y 指向的字符串之后int f(char*x)int*y=x while(*y+);return y x 1;4.设有以下声明和语句:int a3=1,2,3,*p3,i;for(i=0;iy?x:y;且 main 函数中有声明:int a=1,b=2,c2=0;则以下语句中正确的是B。A.printf(“%d”,fun(a,b,c);B.fun(a,b,c+1);C.fun(a,b,c2);D.fun(1,2);9.若已有二维数组声明 int a33=1,2,3,4,5,6,7,8,9;不能正确输出数组 a 中第
3、2 行(行下标为 1)第 3 列元素(列下标为 2)的语句是C。A.printf(“%d”,a12)B.printf(“%d”,*(*(a+1)+2);C.printf(“%d”,*(a+1)2);D.printf(“%d”,*(a1+2);10.在基于以下全局对象标识符p 的声明中,不能做p+运算的声明是C。A.int p;B.int a10,*p=a;C.int a2,*p2=a;D.int a22,(*p)2=a;11.以下选项均为 fun 函数的定义,其中有语法错误的是B。A.void fun(int x,int*y)x*=*y;B.void fun(int x,int*y)*x*=*
4、y;C.void fun(int*x,int y)*x+=y;D.int *fun(int*x,int y)return x+=y;12.以下表达式中,不要求操作数a 必须是左值的选项是B。应为:(*(a+1))2);A.a+B.*a C.-a D.a=0;13.已知有声明:int a,*b=&a,(*c)3,*d3;则以下表达式中有语法错误的是C。A、(&a)0=0;B、b0=0;C、c0=0;D、d0=&a 14.以下单目运算符均只需要一个操作数,其中要求操作数的类型只能是指针型的是C。A、&B、+C、*D、!15.若有声明语句:int a43=1,2,3,4,5,6,*p=a1,(*q)
5、3=a;不能够输出的语句是C。A、printf(“%d”,a12);B、printf(“%d”,*(p+2);C、printf(“%d”,*(q+1);D、printf(“%d”,*(*(+q)+2);16.若使以下程序没有语法错误并能输出正确结果,p 应当声明为C。main()p 的声明;p=language;puts(p);A、char p;B、char p10;C、char *p;D、char*p10;17.已知有声明 intjoke=1;则表达式“joke”+joke 值的类型是B。A、char B、char*C、int D、int*18.以下声明中正确的是B。A、int n=10,a
6、n;B、int a 10=0,(*p)10=a;C、int n,*p=n;D、int n=10,a10=n;19.以下函数的功能是B。int fun(char*x)char*y=x;while(*y+);return y-x-1;A、字符串复制 B、计算 x 指向的字符串长度C、比较两个字符串长度 D、将 x 指向的字符串连接到y 指向的字符串之后(*c)3的 访 问 形式 相 当 于cxy,cx只是常量1 2 3 4 5 6 0 0 0 0 0 0 20.若有定义:int a =0,1,2,3,4,5,6,7,8,9 ,*p=a,i=3;则对 a 数组元素的引用不正确的是D。A、apa B、
7、*(&ai)C、pi D、*(*(a+i)21.下列关于指针的叙述错误的是D。A、一个指针只能指向与该指针的基类型有相同类型的变量。B、指向不同类型变量的 指针所占内存的大小相同。C、数组元素的类型可以是指针类型。D、int *p3 和 int(*p)3中的 p 没有区别。22.设有声明:char *a2=“abcd”,“ABCD”;以下说法中正确的是C。A、a 是指针变量,它指向含有两个数组元素的字符型一维数组。B、a 是行指针变量,它指向字符串“abcd”。C、a 是指针数组,它的两个元素中分别存放了字符a和A的地址。D、a 是指针数组,它的两个元素分别存放的是存储4 个字符的一维数组的首
8、地址。23.以下程序中,输出值是B。#define M 3#define N M+1#define NN N*N/2 main()n“,NN);A、5 B、6 C、7 D、8 24.已知定义 long a1010,tmp;则能够正确地将 a55 的值赋给变量 tmp 的语句是D。A、tmp=*(a+5)+5;B、tmp=*(*(a+5)+5;C、&tmp=*(*(a+5)+5);D、*&tmp=*(*(a+5)+5);23.若有以下调用语句,则不正确的 fun 函数的原型是C。void main(),char a50;int n;,fun(n,&a3);,应为5个3+1*3+1/2 A、voi
9、d fun(int m,char a )B、void fun(int s,char n100)C、void fun(int n,char a)D、void fun(int p,char*s)24.执行以下程序段后,result 的值为B。#define P(x,y)x*y+x/y void main()int x=2,y=3;float result;result=P(x,x+y);A、10 B、11 C、10.4 D、5 25若函数定义为 void fun(int x,int y,int*p)*p=xy?x:y;,且 main 函数中有声明“int a=1,b=2,c2=0;”,则以下语句中
10、正确的是B。A.printf(“%d”,fun(a,b,c);B.fun(a,b,c+1);C.fun(a,b,c2);D.fun(1,2);26.若 已 有声 明“int a3=1,2,3,4,5,6,*p1=&a00,(*p2)3=a;”,以下选项中的语句分别被执行后,屏幕输出结果不是4 选项是C。A.printf(%d,a10);B.printf(%d,a03);C.printf(%d,p14);D.p2+;printf(%d,p200);27.已知有声明“int x,*px=&x;”,以下选项中不能将1 赋值给x 的语句是C。A.*px=1;B.px0=1;C.*+px=1;D.*px
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试题 答案
限制150内