当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 学习笔记 > 嵌入式学习笔记:C基础高级测试题总结

嵌入式学习笔记:C基础高级测试题总结 时间:2018-09-07      来源:未知

学习C语言,最重要的就是要让理论与实践相结合,这样才能学的扎实而不迷茫,在这里总结出来一些c基础高级测试题,让你对你学的知识来进行一个巩固。都是很常见的题型,快快看看吧。

一、选择题

1.下列四组选项中,均不是C语言键字的选项是 A

A)define , IF, type B) getc, char, printf C) include, scanf, case D) if, struct, type

2.若有定义int i=2,a[10],*p=&a[i];则与*p++ 等价的是 A 。

A、a[i++]   B、a[i]++   C、a[i]   D、a[++i]

3.若有语句int*point,a=4;和ponit=&a; 下面均代表地址的一组选项是____D____.

A) a,point,*&a B) &*a,&a,*point C) *&point,*point,&a D) &a,&*point,point

4.以下程序的运行结果是 B 。

#define MIN(x,y) (x)<(y)? (x):(y)

main()

{int I=10,j=15,k;

k=10*MIN(I,j); 10*10 < 15 ? 10:15

printf(“%d\n”,k);

}

A)10 B)15 C)100 D)150

5.以下能对二维数组a进行正确初始化的语句是_B_D__。

A) int a[2][ ]={{1,0,1},{5,2,3,}}; B)int a[ ][3]={{1,2,3},{4}};

C)int a[2][4]={1,2,3,},{4,5},{6}}; D)int a[3][3]={{1,0,4},{1,1}};

6.以下程序的运行结果是 C 。

main()

{int m=5;

if(m++>5)printf(“%d\n”,m);

else

printf(“%d\n”,m --);6

}

A)4 B)5 C)6 D)7

7.在C语言中,要求运算数必须是整型的运算符是( D)。

A) / B) ++ C) != D) %

8.下面函数的功能是( A )。

int fun (char*x)

{

char*y=x;

while(*y++);

return(y-x-1);

}

A) 求字符串的长度 B) 比较两个字符串的大小

C) 将字符串x复制到字符串y D) 将字符串x连接到字符串y后面

9.执行下面语句后的输出结果为( D )。

int i = -1;

if (i < =0)

printf(“****\n”);

i = 2;

else

printf(“%%%%\n”);

A) **** B) %% C) %%%% D) 有语法错误。不能正确执行

10.下面的程序运行结果为( B )。

int main(void)

{

int x = 3, y = 1, z = 0;

if(x = y + z)

printf(“****”);

else

printf(“####”);

}

A) 语法有错误,不能编译 B) **** C) #### D) 能编译,不能连接

11.下述程序的输出结果是( C )。

int main(void)

{

int Y=100;

while(Y- -);

printf(“Y=%d”,Y);

}

A) Y=0 B) Y=1 C) Y=-1 D) Y=随机数

12.下面这段程序的输出是()

void e(int );

main()

{

int a;

a=3;

e(a);

}

void e(int n)

{

if(n>0)

{

e(--n);

printf("%d" , n);

e(--n);

}

}

A) 0 1 2 0 B) 0 1 2 1 C) 1 2 0 1 D) 0 2 1 1

13.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( D)。

A) extern B) register C) auto D) static

14.以下程序的运行结果为( B )。

void sub(int x, int y, int *z)

{ *z = y – x ; }

int main(void)

{

int a,b,c ;

sub(10, 5, &a) ; a = -5

sub(7, a, &b) ; b = -12

sub(a, b, &c) ; c = -7

printf( “%4d,%4d, %4d\n”,a,b,c);}

A) 5, 2, 3 B) -5, -12, -7 C) -5, -12, -17 D) 5, -2, -7

15.#define ADD(x) x+x

main()

{

int m=1,n=2,k=3;

int sum=ADD(m+n)*k; m+n+m+n*k 1+2+1+2*3

printf(“sum=%d”,sum);

}

上面程序的运行结果是 B 。

A) sum=9 B) sum=10 C) sum=12 D) sum=18

二、填空题

1.设二进制数x的值是11001101,若想通过x&y 运算使x中的低4位不变,高4位清零,则y的二进制 数为( 00001111 )。

2. 若有以下定义和语句,则*p[0]引用的是a数组元素中的( a[0] ),*(p[1]+1)引用的是a数组元素中的( a[3] )。&a[2] int * &a[3]

int *p[3], a[6], i;

for( i = 0; i < 3; i++) p[i] = &a[2*i]; &a[0] &a[2] &a[4]

3. 若有以下输入(代表回车换行符),则下面程序的运行结果为( 7 )。p[1][2]

1,2

int main(void)

{

int a[3][4] = {1,2,3,4 ,5,6,7,8, 9,10,11,12};

p = a;

scanf(“%d,%d”,&i,&j);

printf(“%d\n”, *(*(p+i)+j));

return 0;

}

4.下面程序段中循环体的执行次数是( 3 )。 2 6 4 0

a =10;

b =0;

do { b+=2; a-=2+b;} while(a>=0);

5.已知一个函数原型为 char *fun(int,int (*)(int)),请写出指向这个函数的指针( char* (*p)(int,int(*)(int)) )

6.请写出一个数组原型,里面有3个元素,每个元素都是数组指针,而且数组指针指向的二维数组都有4

列并且内部元素都是char类型。( char(*a[3])[4] )

三、编程题

1.编写程序实现功能:输入一个日期,判断这个日期是这一年的第几天,输出结果;

2.设计将数组s[N]中所有奇数移到所有偶数之前的算法。注意:不另增加存储空间.

3.写一个函数,统计一个int类型的二进制值中有多少位为1。

4.请实现一个函数,实现字符串拷贝函数(strcpy)的功能

这些都是学习C语言必须要学会的,虽然不是很全,但是对学习C语言还是很不错的。

上一篇:嵌入式学习笔记:linux shell基本命令大全,高手总结

下一篇:嵌入式学习笔记:linux用户管理命令大总结

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部