|
《C语言程序设计》17春平时作业1
一、单选题:
1.以下正确的说法是( ) (满分:4)
A. 定义函数时,形参的类型说明可以放在函数体内
B. return后面的值不能为表达式
C. 如果函数的类型与返回值类型不一致,以函数类型为准
D. 如果形参与实参的类型不一致,以实参类型为准
2.使用scanf(“x=%f,y=%f”,&x,&y)要使x,y的值均为3.14,正确的输入是 (满分:4)
A. 3.14,3.14
B. 3.143.14
C. x=3.14,y=3.14
D. x=3.14y=3.14
3.下面程序#include "stdio.h" #include "string.h" main( ){char *s1="AbDeG";char *s2="AbdEg";s1+=2; s2+=2;printf"%d\n",strcmp(s1,s2));}的运行结果是( ) (满分:4)
A. 正数
B. 负数
C. 零
D. 不确定的值
4.关于联合体,下面叙述不正确的是( ) (满分:4)
A. 联合体变量中成员项共用同一存储空间,因此,联合体变量的地址和每一个成员项的地址是同一地址
B. 联合体变量中成员项所占存储空间量不同,因此,联合体中每一个成员项的地址不是同一地址
C. C语言规定不能对联合体变量赋值
D. 也不能通过直接引用变量名来得到成员项,这与结构体是相同的
E. 不允许将联合体变量作为函数参数,也不允许用联合体变量作为函数的返回值
5.C语言规定:在一个源程序中,main函数的位置( ) (满分:4)
A. 必须在最开始
B. 必须在系统调用的库函数的后面
C. 可以任意
D. 必须在最后
6.设字符型变量ch的值为'A',整型变量m的值为'1',假定执行putchar(m);putchar(' ');putchar(ch);后,则输出结果是( ) (满分:4)
A. A1
B. lA
C. Al
D. 1A
7.若有以下定义int a[5]={1,2,3,4,5},*p,i;i=3;p=a;,则对数组元素地址的正确引用是( ) (满分:4)
A. &p
B. a++
C. &(p+1)
D. &p
8.以下对C语言函数的有关描述中,正确的是 (满分:4)
A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B. C函数既可以嵌套定义又可以递归调用
C. 函数必须有返回值,否则不能使用函数
D. C程序中有调用关系的所有函数必须放在同一个源程序文件中
9.若二维数组a有m列,则计算任一元素a[j]在数组中位置的公式为(假设a[0][0]位于数组的第一个位置上)( ) (满分:4)
A. i*m+j
B. j*m+I
C. i*m+j-1
D. i*m+j+1
10.有以下程序#include main( ){ int a[]={1,2,3,4,5,6},*p;p=a;*(p+3)+=2;printf("%d,%d",*p,a[3]);},请问执行后的输出结果是( ) (满分:4)
A. 1,4
B. 0,4
C. 1,6
D. 0,6
11.下面程序的输出是( )main( ){enum team {my, your=4,his,her=his+10};printf("%d%d%d%d\n",my,your,his,her);} (满分:4)
A. 0123
B. 04010
C. 04515
D. l4515
12.C源程序文件名为echo.c经过编译后,在命令行提示符下输入( ),则在屏幕上将显示good morning。 #include main(int argc,char *argv[]) { int i; for(i=1;i<argc;i++) printf("%s%c",argv,(i<argc-1)?' ':'\n'); } (满分:4)
A. goodmorning
B. echogoodmorning
C. goodmorning
D. main(goodmorning)
13.若有说明:int a[3][4];则对a数组元素的正确引用是( ) (满分:4)
A. a[2][4]
B. a[1,3]
C. a[1+1][0]
D. a(2)(1)
14.假设所有变量均为整型, 则表达式( a=5, b=2, a++, a+b ) 的值是( ) (满分:4)
A. 8
B. 7
C. 6
D. 5
15.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( ) (满分:4)
A. float
B. char
C. int
D. double
三、判断题:
1.结构体变量各元素在内存中是连续、按顺序排放的 (满分:4)
A. 错误
B. 正确
2.strcmp3(char *s,char *t){for(;*t= =*s;){if(!*t) return 0; t++;s++;}return(*s-*t);}库函数strcmp(char*s,char*t)是功能相等的程序段 (满分:4)
A. 错误
B. 正确
3.char *s="china";等价于char *s;s="china"; (满分:4)
A. 错误
B. 正确
4.在C 语言中,指针类型属于构造类型 (满分:4)
A. 错误
B. 正确
5.在一个函数内部的复合语句中定义的变量,只在该复合语句范围内有效 (满分:4)
A. 错误
B. 正确
6.如果int i=3,则printf(“%d”,-i++)的结果和i的值为-3和4 (满分:4)
A. 错误
B. 正确
7.goto不是C语言的关键字 (满分:4)
A. 错误
B. 正确
8.若有说明int *p1,*p2,m=5,n;则p1=&m;p2=&p1;是正确的程序段 (满分:4)
A. 错误
B. 正确
9.main( ){short i;i=-4;printf("\ni:dec=%d, oct=%o, hex=%x, unsigned=%u\n",i,i,i,i);}以上程序的输出结果为i:dec=-4, oct=177774, hex=fffc, unsigned=65532 (满分:4)
A. 错误
B. 正确
10.对for(表达式1; ;表达式3)可理解为for(表达式1;1;表达式3) (满分:4)
A. 错误
B. 正确
《C语言程序设计》17春平时作业2
一、单选题:
1.设char *s="\ta\017bc";则指针变量s指向的字符串所占的字节数是( ) (满分:4)
A. 9
B. 5
C. 6
D. 7
2.下面四个选项中,均是正确的八进制或十六进制数的选项是( ) (满分:4)
A. 0abc,-017,0xc
B. -10,0x8f,-011
C. 0010,-0x11,0xf1
D. 0a12,-0x123,-0xa
3.已知ch是字符型变量,下面不正确的赋值语句是( ) (满分:4)
A. ch=‘\0’
B. ch=‘a+b’
C. ch=‘7’+‘9’
D. ch=7+9
4.有一个函数原型如下所示: abc(float x,double y); 则该函数的返回类型为 (满分:4)
A. void
B. double
C. int
D. float
5.C语言中,运算对象必须是整型数的运算符是( ) (满分:4)
A. %
B. \
C. %和\
D. **
6.以下程序main( ){int i=010,j=10,k=0x10;printf("%d,%d,%d\n",i,j,k);的输出结果是( ) (满分:4)
A. 8,10,16
B. 8,10,10
C. 10,10,10
D. 10,10,16
7.若有定义:int a=7; float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( ) (满分:4)
A. 2.500000
B. 2.750000
C. 3.500000
D. 0.000000
8.以下有关宏替换的叙述不正确的是( ) (满分:4)
A. 宏替换不占用运行时间
B. 宏名无类型
C. 宏替换只是字符替换
D. 宏名必须用大写字母表示
9.阅读以下程序,int w=1,x=2,y=3,z=4,m;m=w<x?w:x;m=m<y?m:y;m=m<z?m:z;则执行语句后m的值是( ) (满分:4)
A. 1
B. 2
C. 3
D. 4
10.以下对C语言描述中正确的是( ) (满分:4)
A. C语言源程序中可以有重名的函数
B. C语言源程序中要求每行只能书写一条语句
C. C语言源程序中,注释可以出现在任何位置
D. 最小的C源程序中没有任何内容
11.以下程序的运行结果是( )main( ){int m=5;if(m++>5) printf("%d",--m);else printf("%d",m++);} (满分:4)
A. 4
B. 5
C. 6
D. 7
12.在c语言中,引用数组元素时,其数组下标的数据类型是( ) (满分:4)
A. 整型常量
B. 整型表达式
C. 整型常量或整型表达式
D. 任何类型的表达式
13.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是( ) (满分:4)
A. exp==0
B. exp!=0
C. exp==1
D. exp!=1
14.表达式(double)(20/3)的值为( ) (满分:4)
A. 6
B. 6.0
C. 2
D. 3
15.若有说明:int a[ ][4]={1,2,3,4,5,6,7,8,9},则数组第一维的大小为( ) (满分:4)
A. 2
B. 3
C. 4
D. 不确定的值
三、判断题:
1.strcmp3(char *s,char *t){for(;*t= =*s;){if(!*t) return 0; t++;s++;}return(*s-*t);}库函数strcmp(char*s,char*t)是功能相等的程序段 (满分:4)
A. 错误
B. 正确
2.main( ){int x,y,z;x=1;y=2;z=3;x=y--<=x( )x+y!=z;printf("%d,%d",x,y);} 程序的运行结果是1,1 (满分:4)
A. 错误
B. 正确
3.C语言中输入输出是通过函数完成的 (满分:4)
A. 错误
B. 正确
4.for(y=0,x=1;x>++y;x=i++) i=x;是无限循环的语句 (满分:4)
A. 错误
B. 正确
5.用typedef可以创建新的基本类型 (满分:4)
A. 错误
B. 正确
6.main( ){printf("*%f,%4.3f*\n",3.14,3.1415);}以上程序的输出结果为*3.140000,3.142* (满分:4)
A. 错误
B. 正确
7.C语言是解释性语言 (满分:4)
A. 错误
B. 正确
8.若a为一维数组名,则*(a+i)与a等价 (满分:4)
A. 错误
B. 正确
9.对for(表达式1; ;表达式3)可理解为for(表达式1;1;表达式3) (满分:4)
A. 错误
B. 正确
10.若有说明int *p1,*p2,m=5,n;则p1=&m;p2=&p1;是正确的程序段 (满分:4)
A. 错误
B. 正确
《C语言程序设计》17春平时作业3
一、单选题:
1.语句int(*ptr)( );的含义是( ) (满分:4)
A. ptr是指向一维数组的指针变量
B. ptr是指向int型数据的指针变量
C. ptr是指向函数的指针,该函数返回一个int型数据
D. ptr是一个函数名,该函数的返回值是指向int型数据的指针
2.以下叙述中不正确的是( ) (满分:4)
A. 预处理命令都必须以#开始
B. 在C程序中凡是以#开始的语句行都是预处理命令行
C. C程序在执行过程中对预处理命令行进行处理
D. 以下是正确的宏定义#defineIBMPC
3.执行以下程序后的输出结果是( )int w=3,z=7,x=10;printf("%d",x>10?x+100:x-10);printf("%d",w++( )z++);printf("%d",!w>z);printf("%d",w&&z); (满分:4)
A. 0111
B. 1111
C. 0101
D. 0100
4.已有说明float f=3.14,*p;若让p指向f,则正确的赋值语句是( ) (满分:4)
A. p=f
B. p=&f
C. *p=f
D. *p=&m
5.以下不正确的说法为( ) (满分:4)
A. 在不同函数中可以使用相同名字的变量
B. 形式参数是局部变量
C. 在函数内定义的变量只在本函数范围内有效
D. 在函数内的复合语句中定义的变量在本函数范围内有效
6.不属于字符型常量的是( ) (满分:4)
A. A'
B. "A"
C. '\\'
D. '\"'
7.以下叙述中正确的是( ) (满分:4)
A. 在程序的一行上可以出现多个有效的预处理命令行
B. 使用带参的宏时,参数的类型应与宏定义时的一致
C. 宏替换不占用运行时间,只占用编译时间
D. 以下定义中CR是称为宏名的标识符#defineCR045
8.若使用一位数组名作为函数实参,则以下正确的说法是( ) (满分:4)
A. 必须在主调函数中说明此数组的大小
B. 实参数组类型与形参数组类型可以不匹配
C. 在被调函数中,不需要考虑形参数组的大小
D. 实参数组名与形参数组名必须一致
9.已有变量定义和函数调用语句int a=25;printvalue(&a);下面函数void printvalue(int *x){printf("%d\n",++*x);}输出的正确结果是( ) (满分:4)
A. 23
B. 24
C. 25
D. 26
10.已知int x=10,y=20,z=30;以下语句if(x>y)z=x;x=y;y=z;执行后x,y,z的值是( ) (满分:4)
A. 10,20,30
B. 20,30,30
C. 20,30,10
D. 20,30,20
11.函数rewind的作用是( ) (满分:4)
A. 使位置指针指向文件的末尾
B. 将位置指针指向文件中所要求的特定位置
C. 使位置指针重新返回文件的开头
D. 使位置指针自动移到下一个字符位置
12.若有说明:int a[][4]={0,0};则下面不正确的叙述是( ) (满分:4)
A. 数组a的每个元素都可得到初值0
B. 二维数组a的第一维大小为1
C. 因为二维数组a中第二维大小的值除初值个数的商为0,故数组a的行数为1
D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
13.已有定义int k=2;int *p1,*p2;且p1,p2均指向变量k,下面不能正确执行的赋值语句是( ) (满分:4)
A. k=*p1+*p2
B. p2=k
C. p1=p2
D. k=*p1*(*p2)
14.运行下列程序main( ){char ch='B';printf("%c%d",ch,ch++);}的输出是( ) (满分:4)
A. C65
B. B65
C. B66
D. C66
15.以下正确的描述是( ) (满分:4)
A. continue语句的作用是结束整个循环的执行
B. 只能在循环体内和switch语句体内使用break语句
C. 在循环体内使用break语句或continue语句的作用相同
D. 从多层循环嵌套中退出时,只能使用goto语句。
三、判断题:转载请注明无忧答案网www.ap5u.com
1.若有说明int *p1,*p2,m=5,n;则p1=&m;p2=&p1;是正确的程序段 (满分:4)
A. 错误
B. 正确
2.若a为一维数组名,则*(a+i)与a等价 (满分:4)
A. 错误
B. 正确
3.以下if语句if(x>0){x=x+y;printf("%f",x);} else printf("%f",-x);语法正确的是正确的 (满分:4)
A. 错误
B. 正确
4.double fun(int x,int y){double z;z=x+y;return z;}是正确的函数形式 (满分:4)
A. 错误
B. 正确
5.strcmp3(char *s,char *t){for(;*t= =*s;){if(!*t) return 0; t++;s++;}return(*s-*t);}库函数strcmp(char*s,char*t)是功能相等的程序段 (满分:4)
A. 错误
B. 正确
6.#define SIZE 10 int a[SIZE];是对一维数组a的正确说明 (满分:4)
A. 错误
B. 正确
7.strcpy4(char *p1,char *p2){while(*p2) *p1++=*p2++;}与库函数strcpy(char*p1,char*p2)是功能相等的程序段 (满分:4)
A. 错误
B. 正确
8.main( ){char c='x';printf("c:dec=%d, oct=%o, hex=%x, ASCII=%c\n",c,c,c,c);}以上程序的输出结果为c:dec=120, oct=170, hex=78, ASCII=x (满分:4)
A. 错误
B. 正确
9.下列语句new→next=head;head=new;可以完成建立2结点的单向链表的功能 (满分:4)
A. 错误
B. 正确
10.如果int i=3,则printf(“%d”,-i++)的结果和i的值为-3和4 (满分:4)
A. 错误
B. 正确
|
|