三九宝宝网宝宝百科宝宝知识

二级C语言教程章节测试13

11月11日 编辑 39baobao.com

[编译器及其命令行模式杂谈]题记: 接触了几年的计算机了,也被人当作是专业人士几年了,不得不承认,编程能力一直不是太好.但是现在一直在努力.希望能早点补齐这个缺口.最早学习C语言的时候,用的编译器是...+阅读

一、选择题

(1)有以下程序

main()

{ char p[]={'a', 'b', 'c'}, q[]="abc";

printf("%d %d\n", sizeof(p),sizeof(q));

};

程序运行后的输出结果是

A)4 4 B)3 3 C)3 4 D)4 3

(2)有以下程序

&emsp define f(x) (x*x)

main()

{ int i1, i2;

i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ;

printf("%d, %d\n",i1,i2);

}

程序运行后的输出结果是

A)64, 28 B)4, 4 C)4, 3 D)64, 64

(3)有以下程序

main()

{ char a[7]="a0\0a0\0";int i,j;

i=sizeof(a); j=strlen(a);

printf("%d %d\n",i,j);

}

程序运行后的输出结果是

A)2 2

B)7 6

C)7 2

D)6 2

(4)以下叙述中正确的是

A)预处理命令行必须位于源文件的开头

B)在源文件的一行上可以有多条预处理命令

C)宏名必须用大写字母表示

D)宏替换不占用程序的运行时间

(5) 有以下程序

main( )

{ char a[]=”abcdefg”,b[10]=”abcdefg”;

printf(“%d %d\n”,sizeof(A) ,sizeof(B) );

}

执行后输出结果是

A) 7 7 B) 8 8 C) 8 10 D) 10 10

(6) 有以下程序

&emspdefine f(x) x*x

main( )

{ int i;

i=f(4+4)/f(2+2);

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

}

执行后输出结果是

A) 28 B) 22 C) 16 D) 4

(7) 有以下程序

&emspinclude

&emspdefine F(X,Y) (X)*(Y)

main ()

{ int a=3, b=4;

printf("%d\n", F(a++,b++));

}

程序运行后的输出结果是

A) 12 B) 15 C) 16 D) 20

(8) 有以下程序

main()

{ char s[]="\n123\\";

printf("%d,%d\n",strlen(s),sizeof(s));

}

执行后输出结果是

A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6

(9) 有以下程序

main(int arge,char *ar[])

{ int n,i=0;

while(arv[1][i]!='\0'

{ n=fun(); i++;}

printf(%d\n",n*argc);

}

int fun()

{ static int s=0;

s+=1;

return s;

}

假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行

exam 123

则运行结果为

(10) 有以下程序

main()

{ char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’, ‘g’,‘h’,‘\0’}; int i,j;

i=sizeof(a); j=strlen(a);

printf(“%d,%d\b”i,j);

}

程序运行后的输出结果是

A)9,9 B)8,9 C)1,8 D)9,8

(11) 程序中头文件typel.h 的内容是:

&emspdefine N 5

&emspdefine M1 N*3

程序如下:

&emspdefine “type1.h”

&emspdefine M2 N*2

main()

{ int i;

i=M1+M2; printf(“%d\n”,i);

}

程序编译后运行的输出结果是:

A) 10 B) 20 C) 25 D) 30

(12) 有以下程序

&emspinclude

main()

{ char *p,*q;

p=(char*)malloc(sizeof(char)*20); q=p;

scanf(“%s%s”,p,q); printf(“%s%s\n”,p,q);

}

若从键盘输入:abc def,则输出结果是:

A) def def B) abc def C) abc d D) d d

(13) 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是

A) p=2*(int*)malloc(sizeof(int));

B) p=(int*)malloc(2*sizeof(int));

C) p=(int*)malloc(2*2);

D) p=(int*)calloc(2,sizeof(int));

(14) 以下程序的输出结果是

main()

{ char st[20]= “hello\0\t\\\”;

printf(%d %d \n”,strlen(st),sizeof(st));

}

A) 9 9 B) 5 20 C) 13 20 D) 20 20

(15) 以下程序的输出结果是

amovep(int p, int (a)[3],int n)

{ int i, j;

for( i=0;i

以下为关联文档:

下面的C++代码能编译&emspinclude&emspdefine NUM getnum()int getnum(){int x = 0;scanf("%d",printf("%dn", x);return x;}int main(char** argc, int ar){int array[NUM];print...

C++技巧:用kdevelop进行交叉编译的方法用kdevelop进行交叉编译的方法。 首先提一下,我这篇文章,对于那些喜欢使用繁琐开发工具的达人们可以无视。 嵌入式的linux开发中,要建立的项目通常是三种,一是C或C++的工程。二...

酸蚀铝型材表面预处理技术的应用1、工艺简介 近年来,铝合金亚光型材生产和销售量越来越大,市场占有率在80%以上。目前亚光型材生产普遍使用碱蚀方法,铝溶损在3%-5%之间,造成巨大资源浪费,而且大大增加了环保治理...

推荐阅读
图文推荐