好文档 - 专业文书写作范文服务资料分享网站

C语言程序设计作业2答案

天下 分享 时间: 加入收藏 我要投稿 点赞

第2次作业答案 一、 单项选择题答案 1B

2B

3D

4C

5B

6B

7D

8D

9B 10C

11C 12B 13A 14C 15B 一. 单项选择题

16B 17D 18A 19D 20B

1.若有以下定义: int a[]={3, 4, 5, 6, 7, 8, 9, 10, 11}, *p=a; 则值为5的表达式是( )。 A)p+=5, *(p+1)

B)p+=1, * ++p

C)p+=4, *p++

D)p+=1, ++ *p

2.下面函数调用语句含有实参的个数为() fun( ( a, b, c, d ), ( m, n ), (f, g ) ); A)1

B)3

C)4

D)2

3.函数形式正确的是()。 A) double myfun( int x, int y)

B) int myfun( int x, y)

{ m=x+y; return m; } C)

int myfun( int x, int y) { int x, y; double m;

m=x+y; return m; }

{ int m; }

D) int myfun( int x, int y)

{ int m; m=x+y; return m; }

4.不正确的字符串赋值或赋初值方式是()。 A)char *str; str=”string”;

B)char str[7]={‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’}

C) char str[10]; str=”string”;

D)char str[]=”string”; str2[]=””; strcpy(str2, str1); 5.以下程序的输出结果是()。 #include main()

{ char str[]=\ int k;

for (k=2; (c=str[k])!='\\0'; k++) {

switch (c) {

case 'I': ++k; break; case 'L': continue; }

putchar('*'); } A)SSW*

B)SW*

C)SW*A

D)SW

default: putchar(c); continue; }

6.以下程序的输出结果是()。 #include int w=3; fun( int k) {

if ( k==0) return w; return ( fun(k -1 )*k); }

main() { int w=10;

printf(\} A)360

B)3600

C)1080

D)1200

7. 以下程序的输出结果是()。 #include int w=3; f( int a)

{ int b=0; static int c=3; b++; c++; return ( a+b+c); } main() { int a=2, i; for (i=0; i<3; i++) printf(\}

A)7 7 7

B)7 10 13

8.以下程序的输出结果是()。 #include main()

{ int a[]={1,2,3,4,5,6}, *p; p=a; *(p+3)+=2;

printf(\} A)0, 5

B)1, 5

9.以下程序的输出结果是()。 #include #define PT 5.5 #define S(x) PT*x*x main() { int a=1, b=2;

printf(\} A)49.5

B)9.5

10.下面程序段的输出结果是()。 #include #define LETTER 1 main()

{ char str[20]=\ int i=0;

while (( c=str[i])!='\\0') { i++;

C)7 9 11

C)0, 6

D)1, 6

C)12.5

D)33.5

2

D)7 8 9

# if (LETTER)

if (c>='a'&& c<='z') c=c-32; #else

if (c>='A'&& c<='Z') c=c+32; #endif printf(\ } }

A)Language

B)language

C)LANGUAGE

D)lANGUAGE

11.若有说明:char *s[]={“FORTRAN”, “BASIC”,”PASCAL”,”JAVA”,”C”}; 则表达式 *s[1]>*s[3]比较的是()。 A)字符F和字符P C)字符B和字符J

B)字符串BASIC和字符串JAVA D)字符串FORTRAN和字符串PASCAL

12.如下程序的输出结果是()。 #include main()

{ char a[20]=\ char *p=a; for (; p

A)chinese

B)ciee

C)chine

D)cie

13. 若有定义: int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为()。 A)*(*(a+i)+j)

B)(a+i)[j]

C)*(a+i+j)

D)*(a+i)+j

14. 若有以下定义和语句,则对a数组元素的正确引用为( )。 int a[2][3],(*p)[3]; p=a; A)(p+1)[0]

B)*(*(p+2)+1)

C)*(p[1]+1)

D)p[1]+2

15.若以下main函数经过编译、连接后得到的可执行文件名为echo.exe,若希望在系统的命令状态下输入某一命令行后得到的输出是chian tianjin,则命令行的内容应是()。 A)chian tianjin

B)echo chian tianjin

C)echo D)echo chian tianjin

china tianjin

16.以下对结构体变量stu中成员age的非法引用是()。 struct student

{ int age; int num; } stu, *p; p=&stu; A)stu.age

B)student.age

C)p->age

D)(*p).age

17.已知学生记录描述为: struct DATE { int year; int month; int day; };

struct student

{ int no; /*学号*/ char name[10]; /*姓名*/ char sex; /*性别*/ struct DATE birth; };

struct student s;

设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是()。 A)year=1984;

B)birth.year=1984;

month=11; birth.month=11; day=11; birth.day=11; C)s.year=1984;

D)s.birth.year=1984;

s.month=11; s. birth.month=11; s.day=11; s.birth.day=11; 18.若有以下定义的语句: union data { int i; char c; float f; }a; int n;

则以下语句正确的是()。 A)a.i=5

B)a={2,’a’,1.2}

C)printf(“%d”,a)

19. 表达式a

B)~,||,&,<

C)~,&,||,<

20.若执行fopen函数时发生错误,则函数的返回值为()。 A)地址值 B)0

C)1

D)EOF

二. 填空题答案 1. [&arr[i], arr+i]

2.[(1)a[0]=1 a[1]=2 (2)实参和形参是值传递] 3.[(1)0 (2)6] 4. [*(s+j++)=*(s+i);] 5.[(1)i<=7 (2)j=i+7] 6. [123] 7. [EFGH IJKL]

8.[n1=1, n2=6]

9.[(1)long num (2) num!=0] 10.[120 ]

11.[FO]

12.[(1)FILE *fp(2)fname(3)fp]

二、 填空题(本大题共11小题,每空2分,共30分)

4

D)n=a

D)~,<,&, ||

1.int arr[20]; 则arr[i]的地址可表示为

2.函数swap(int x, int y)可完成对x和y值的交换。在运行调用函数中的如下语句后,a[0]和a[1]的值分别为 和 ,原因是swap(a[0],a[1])只是将形参的值交换,实参a[0]和a[1]并不交换. 。

a[0]=1; a[1]=2; swap(a[0],a[1]);

3.若有定义 int a [3][4]={{1,2}, {0},{ 4,6,78,10}}; 则初始化后a[1][2]得到的初值是 0 ,a[2][1]得到的初值是 6 。

4.函数delete_string( char s[ ],char c)将字符串s中所出现的与变量c相同的字符删除,请填空。 delete_string(char *s, char ch) /*定义外部函delete_string*/ {int i,j;

for (i=j=0;*(s+i)!='\\0';i++) if (*(s+i)!=ch) *(s+(j++)) = *(s+i) _____________ ;

*(s+j)='\\0'; }

5.下面程序段将输出 computer,请填空。 int i, j=0;

char c[for(i=0;j=7,i<8;i++) ]=”it’s a computer”; for (i=0; j+=i; ;i++)

{ printf(\ ; printf(“%c”,c[j];) 6. 如下程序段的输出结果是 123

#include main()

{ char str[]=\ for (i=0; str[i]!='\\0';i++) }

7.如下程序段的输出结果是 EFGH IJKL 。 #include main()

{ char str[][10]={\ for (k=1; k<3;k++) }

8.如下程序段的输出结果是 n1=1,n2=6

#include

printf(\

if (str[i]>='0'&&str[i]<='9') printf(\

C语言程序设计作业2答案

第2次作业答案一、单项选择题答案1B2B3D4C5B6B7D8D9B10C11C12B13A14C15B一.单项选择题16B17D18A19D20B<
推荐度:
点击下载文档文档为doc格式
3s34913zum0cqsi0v0jd0weks4q8c700npt
领取福利

微信扫码领取福利

微信扫码分享