东北师范大学17春《C程序设计》在线作业
东师17春C程序设计在线作业1
一、单选题:【20道,总分:60分】
1.下面程序 main( ) { char ch={ "65ab21"}; int i,s=0; for(i=0;ch>='0' && ch<='9';i+=2) s=10*s+ch-'0'; printf("%d\n",s); }运行的结果是( ) (满分:3)
A. 2ba56
B. 6521
C. 6
D. 62
2.设有说明 int(*ptr)( );其中标识符ptr是( ) (满分:3)
A. 是一个指向整型变量的指针
B. 它是一个指向函数值是int的函数指针
C. 是一个函数名
D. 定义不合法
3.以下程序:main( ){char c;int i;for(i=65;i<68;i++){c=i+32;switch(c){case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,");default: printf("end");} }}的输出结果为( ) (满分:3)
A. a,ok,end
B. a,ok,endend
C. a,ok,end,end
D. a,ok,ok
4.以下程序#define P 3 #define F(x) P*x*x main( ) { printf("%d\n",F(3+5)); } 的输出结果是( ) (满分:3)
A. 192
B. 29
C. 25
D. 编译出错
5.t为int类型,进人下面的循环之前,t的值为0 while( t=l ) { …… } 则以下叙述中正确的是 ( ) (满分:3)
A. 循环控制表达式的值为0
B. 循环控制表达式的值为1
C. 循环控制表达式不合法
D. 以上说法都不对
6.设a为整型变量,初值为12,执行完语句 a+=a-=a*a后,a的值是( ) (满分:3)
A. 552
B. 144
C. 264
D. -264
7.以下程序: main( ) { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); } 的输出结果是( ) (满分:3)
A. 5
B. 4
C. 6
D. 不确定
8.若程序中定义了以下函数double myadd(double a,double B) { return(a+B) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是( ) (满分:3)
A. double myadd(double a,B) ;
B. double myadd(double,double);
C. double myadd(double b,double A) ;
D. double myadd(double x,double y);
9.下列程序把数组元素中的最大值放入a中,main( ){ int a={6,8,3,1,5,9,4,2,7,0};for(i=0;i<10;i++,p++) if( ) *a=*p;printf(“%d\n”,*a);} 则在if语句中的条件表达式应该是( ) (满分:3)
A. p>a
B. *p>a
C. *p>*a
D. *p>*a
10.定义由n个指向整型数据的指针组成的数组p,其正确的方式为( ) (满分:3)
A. int p;
B. int(*p);
C. int *p;
D. int(*p)( );
11.要定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是( ) (满分:3)
A. int(*a)
B. int *a
C. int *a
D. 以上写法都不对
12.在下列程序段中, enum color { red,yellow,blue=4,green,white}c1,c2; c1=yellow; c2=white; 枚举变量 c2 的值是( ) (满分:3)
A. 1
B. 3
C. 5
D. 6
13.在下列程序段中, enum color { red,yellow,blue=4,green,white}c1,c2; c1=yellow; c2=white; 枚举变量 c2 的值是( ) (满分:3)
A. 1
B. 3
C. 5
D. 6
14.有如下函数调用语句: func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是( ) (满分:3)
A. 3
B. 4
C. 5
D. 有语法错
15.下列程序:main( ){ int a=7,b=5;printf("%d\n",b=b/a);}的输出结果是( ) (满分:3)
A. 5
B. 1
C. 0
D. 不确定值
16.以下程序段:? char str=”hello!”;printf(“%d\n”,strlen(str)); 的输出结果是( ) (满分:3)
A. 15
B. 14
C. 7
D. 6
17.以下程序运行后,int func(char *str) { int num=0; while(*(str+num)!='\0') num++; return(num); } main( ) { char str,*p=str; gets(p); printf("%d\n",func(p)); }如果从键盘上输入ABCDE,则输出结果为( ) (满分:3)
A. 8
B. 7
C. 6
D. 5
18.文件存贮在( ) (满分:3)
A. 内存
B. 外存
C. 寄存器
D. CPU
19.设有数组定义:char array[]=”China”; 则数组所占的空间是( ) (满分:3)
A. 4个字节
B. 5个字节
C. 6个字节
D. 7个字节
20.若已定义:int a, *p=a;并在以后的语句中未改变p的值,不能表示a地址的表达式为( ) (满分:3)
A. p+1
B.
C. a+1
D. a++
E. ++p
二、判断题:【20道,总分:40分】
1.C语言规定:在一个源程序中,main函数的位置必须在最开始。 (满分:2)
A. 错误
B. 正确
2.常量的定义要通过#ifndef宏指令来实现。 (满分:2)
A. 错误
B. 正确
3.C语言中有些不同类型的变量可以在一个表达式中运算。 (满分:2)
A. 错误
B. 正确
4.函数调用可以通过语句的形式也可以通过表达式的形式。 (满分:2)
A. 错误
B. 正确
5.不允许对二维数组的部分元素赋初值。 (满分:2)
A. 错误
B. 正确
6.若程序中使用了strcpy函数,则必须包含头文件string.h。 (满分:2)
A. 错误
B. 正确
7.C语言中规定函数的返回值的类型是由return语句中的表达式类型所决定。 (满分:2)
A. 错误
B. 正确
8.44.while之后的表达式必须是逻辑表达式。 (满分:2)
A. 错误
B. 正确
9.若有定义:char *p(char a);则p是函数名。 (满分:2)
A. 错误
B. 正确
10.结构良好的C程序可由顺序、指针和函数三种基本结构组成的。 (满分:2)
A. 错误
B. 正确
11.strcmp用来比较两个字符串的大小。 (满分:2)
A. 错误
B. 正确
12.C语言中的文件都是用ASCII码进行存贮的。 (满分:2)
A. 错误
B. 正确
13.‘a’和“a”是一样的。 (满分:2)
A. 错误
B. 正确
14.使用if语句时,一定要有else语句与它配对。 (满分:2)
A. 错误
B. 正确
15.Continue语句的作用是继续程序中的下一个循环。 (满分:2)
A. 错误
B. 正确
16.C语言中数据类型只有整型、实型和字符型。 (满分:2)
A. 错误
B. 正确
17.函数的形参可以是表达式。 (满分:2)
A. 错误
B. 正确
18.指针是一种变量,该变量用来存放某个变量的地址值。 (满分:2)
A. 错误
B. 正确
19.任何数组在使用前必须先定义。 (满分:2)
A. 错误
B. 正确
20.C语言中的标识符只能由字母、数字和下划线组成,且第一个字符必须是字母。 (满分:2)
A. 错误
B. 正确
东师17春C程序设计在线作业2
一、单选题:【20道,总分:60分】
1.有以下程序段 : int m=0,n=0; char c=‘a’; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10,则输出结果是( ) (满分:3)
A. 10,A,10
B. 10,a,10
C. 10,a,0
D. 10,A,0
2.有以下程序 main( ) { char c1=’1’,c2=’2’; c1=getchar( ); c2=getchar( ); putchar(c1); putchar(c2); } 当运行时输入:a 后,以下叙述正确的是( ) (满分:3)
A. 变量c1被赋予字符a,c2被赋予回车符
B. 程序将等待用户输入第2个字符
C. 变量c1被赋予字符a,c2中仍是原有字符2
D. 变量c1被赋予字符a,c2中将无确定值
3.以下程序: main( ){ int a=011;printf(“%d\n”, a);} 的输出结果是( ) (满分:3)
A. 12
B. 11
C. 10
D. 9
4.以下程序:?char str=”hello!”;printf(“%d\n”,strlen(str)); 的输出结果是( ) (满分:3)
A. 15
B. 14
C. 7
D. 6
5.数组名作为实参数传递给函数时,数组名被处理为( ) (满分:3)
A. 该数组的长度
B. 该数组的元素个数
C. 该数组的首地址
D. 该数组中各元素的值
6.若变量c为char类型,能正确判断出c为小写字母的表达式是( ) (满分:3)
A. ’a’<=c<=’z’
B.(c>=’a’)( )(c<=’z’)
C.(‘a’<=c) and(‘z’>=c)
D.(c>=’a’) &&(c<=’z’)
7.以下程序 main( ) {char s1=“abc”,s2=“123”; if(strcmp(s1,s2)>0)printf(“%s\n”,s1);elseprintf(“%s\n”,s2);}的输出结果是( ) (满分:3)
A. abc
B. 123
C. abc123
D. 123abc
8.以下程序: #define ADD(x)x*x main( ) {int a=4,b=6,c=7,d=ADD(a+b)*c; printf("d=%d",d); } 的输出结果为( ) (满分:3)
A. d=70
B. d=80
C. d=140
D. d=700
9.定义如下变量和数组:int i; int x={1,2,3,4,5,6,7,8,9};则语句for(i=0;i<3;i++) ?printf("%d? ",x); 的输出结果是( ) (满分:3)
A. 1 ?5 ?9
B. 1 ?4 ?7
C. 3 ?5 ?7
D. 3 ?6 ?9
10.有以下程序 main( ) { int x={8,7,6,5,0,0},*s; s=x+3; printf("%d\n",s); } 执行后输出结果是( ) (满分:3)
A. 随机值
B. 0
C. 5
D. 6
11.下列程序把数组元素中的最大值放入a中,main( ){ int a={6,8,3,1,5,9,4,2,7,0};for(i=0;i<10;i++,p++) if( ) *a=*p;printf(“%d\n”,*a);} 则在if语句中的条件表达式应该是( ) (满分:3)
A. p>a
B. *p>a
C. *p>*a
D. *p>*a
12.C语言中的文件类型只有( ) (满分:3)
A. 索引文件和文本文件两种
B. 文本文件一种
C. 二进制文件一种
D. ASCII码文件和二进制文件两种
13.有以下程序: main( ) { char a,b,c,d; scanf("%c,%c,%d,%d",&a,&b,&c,&d); printf("%c,%c,%c,%c\n",a,b,c,d); } 若运行时从键盘上输入:6,5,65,66。则输出结果是( ) (满分:3)
A. 6,5,A,B
B. 6,5,65,66
C. 6,5,6,5
D. 6,5,6,6
14.以下程序:main( ) { int i , sum; for(i=1;i<6;i++) sum+=i; printf(“%d\n”,sum); } 执行程序后sum的值是( ) (满分:3)
A. 15
B. 14
C. 不确定
D. 0
15.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是( ) (满分:3)
A. s=a+b;
B. s=a+c;
C. s=s+c;
D. s=b+c;
16.能正确表示a和b同时为正或同时为负的逻辑表达式是( ) (满分:3)
A. (a>=0( )b>=0)&&(a<0( )b<0
B.(a>=0 && b>=0)&&(a<0 && b<0)
C.(a+b>0) &&(a+b<=0)
D. a*b>0
17.以下程序: #define N 2 #define M N+2 #define CUBE(x)(x*x*x) #include "stdio.h" main( ) {int i=M; i=CUBE(i); printf("%d\n",i); }的输出结果为( ) (满分:3)
A. 17
B. 64
C. 125
D. 53
18.函数调用语句:fseek(fp,-10L,2);的含义是( ) (满分:3)
A. 将文件位置指针从文件末尾处向文件头的方向移动10个字节
B. 将文件位置指针从当前位置向文件头的方向移动10个字节
C. 将文件位置指针从当前位置向文件末尾方向移动10个字节
D. 将文件位置指针移到距离文件头10个字节处
19.以下不是建立函数的目的是( ) (满分:3)
A. 提高程序的执行效率
B. 提高程序的可读性
C. 减少程序的篇幅
D. 实现模块化编程
20.以下程序: main( ) { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); } 的输出结果是( ) (满分:3)
A. 5
B. 4
C. 6
D. 不确定
二、判断题:【20道,总分:40分】
1.链表是一种动态数据结构,在程序运行中可动态生成或释放存贮空间。 (满分:2)
A. 错误
B. 正确
2.数组名作为实参调用函数,实际传给形参的是数组中全部的元素值。 (满分:2)
A. 错误
B. 正确
3.C语言是函数式的语言。 (满分:2)
A. 错误
B. 正确
4.当函数类型与return 表达式;中表达式的类型不一致时,以函数类型为准。 (满分:2)
A. 错误
B. 正确
5.链表的每一个结点中必须要有一个结构体类型的指针变量用来存放下一个结点的首地址 (满分:2)
A. 错误
B. 正确
6.当C的值不为0时,(A=C)&&(B=C)能正确地将C的值赋给变量A,B。 (满分:2)
A. 错误
B. 正确
7.’ab’是合法的字符型常量。 (满分:2)
A. 错误
B. 正确
8.C语言中,链表和数组一样是一种静态数据类型。 (满分:2)
A. 错误
B. 正确
9.如果一个函数不需要参数,则函数名后的括号可以省略。 (满分:2)
A. 错误
B. 正确
10.函数若无返回值,则它一定无形参。 (满分:2)
A. 错误
B. 正确
11.在不同的函数中可以使用相同名字的变量。 (满分:2)
A. 错误
B. 正确
12.若有定义:char *p(char a);则p是函数名。 (满分:2)
A. 错误
B. 正确
13.C语言中的文件都是用ASCII码进行存贮的。 (满分:2)
A. 错误
B. 正确
14.参加位运算的数据可以是任何类型的数据。 (满分:2)
A. 错误
B. 正确
15.free函数用来分配存贮空间。 (满分:2)
A. 错误
B. 正确
16.strlen是求字符串长度的函数。 (满分:2)
A. 错误
B. 正确
17.函数的递归调用不过是一个函数直接或间接地调用它自身。 (满分:2)
A. 错误
B. 正确
18.共用体变量的各个成员所占内存单元的地址相同。 (满分:2)
A. 错误
B. 正确
19.定义在main函数后的任何函数都需在main中进行函数声明。 (满分:2)
A. 错误
B. 正确
20.getchar( )函数的功能是从键盘上输入一个字符串。 (满分:2)
A. 错误
B. 正确
更多免费学习资料请登录www.ap5u.com
页:
[1]