该楼层疑似违规已被系统折叠隐藏此楼查看此楼
C程序设计19春在线作业1-0005
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 60 分)
1.设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为()
A.1
B.2
C.3
D.0
2.下列函数: int fun1(chat* x) {char*y=x; while(*y++); return(y-x-1);} 的功能是 ()
A.求字符串的长度
B.比较两个字符串的大小
C.将字符串x复制到字符串y
D.将字符串X连接到字符串Y后面
3.当说明一个结构体变量时,系统分配它的内存是()
A.各成员所需内存容量的总和
B.结构体中第一个成员所需内存
C.各成员所需内存容量的最大值
D.结构体中最后一个成员所需内存
4.以下对二维数组a进行正确初始化的是()
A.int a[2][3]={{1,2},{3,4},{5,6}};
B.int a[ ][3]={1,2,3,4,5,6};
C.int a[2][ ]={1,2,3,4,5,6};
D.int a[2][ ]={{1,2},{3,4}};
5.一个main(int a,char *argv[])函数带参数,可执行文件名为prog.exe,若命令行输入: prog abcd efg 123 则printf(“%d,%s\n”,a,argv[1]); 的结果是()
A.3,prog
B.4,prog
C.3,abcd
D.4,abcd
6.设A为存放整型的一维数组,如果A的首地址为P,那么A中下标为i的元素地址为()
A.P+i*2
B.P+(i-1)*2
C.P+(i-1)
D.P+i
7.下面选项中正确的赋值语句是(设 char a[5],*p=a;) ()
A.p="abcd";
B.a="abcd";
C.*p="abcd";
D.*a="abcd";
8.数组名作为实参数传递给函数时,数组名被处理为()
A.该数组的长度
B.该数组的元素个数
C.该数组的首地址
D.该数组中各元素的值
9.以下程序: #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); } 的输出结果为()
A.17
B.64
C.125
D.53
10.已知职工记录描述如下, struct worker { int no; char name[20]; char sex; struct { int day; int month; int year;}birth; }; struct worker w; 设变量w中的“生日”是“1993年10月25日”,下列对“生日”的正确赋值方式是()
A.day=25; month=10; year=1993;
B.w.birth.day=25; w.birth.month=10; w.birth.year=1993;
C.w.day=25; w.month=10; w.year=1993;
D.birth.day=25; birth.month=10; birth.year=1993;
11.若已包含头文件且有说明char s1[5],s2[7];要给s1,s2赋值,下列语句中正确的是()
A.s1=getchar(); s2=getchar();
B.scanf(“%s%s”,s1,s2);
C.scanf(“%c%c”,s1,s2);
D.gets(s1);s2=s1;
12.下列程序:main( ) { int a=7,b=5; printf("%d\n",b=b/a); } 的输出结果是()
A.5
B.1
C.0
D.不确定值
13.若程序中定义了以下函数 double myadd(double a,double B) { return (a+B) ;} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()
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);
14.C语言源程序的基本单位是()
A.过程
B.函数
C.子程序
D.标识符
15.设函数fun的定义形式为 void fun(char ch, float x ) { … } 则以下对函数fun的调用语句中,正确的是 ()
A.fun("abc",3.0);
B.t=fun(’D’,16.5);
C.fun(’65’,2.8);
D.fun(32,32);
16.已知char a; int b; float c; double d; 执行语句c=a+b+c+d;后,变量c的数据类型是()
A.int
B.char
C.float
D.double
17.当说明一个共用体变量时,系统分配它的内存是()
A.各成员所需内存容量的总和
B.共用体中第一个成员所需内存
C.各成员所需内存容量的最大值
D.共用体中最后一个成员所需内存
18.在以下一组运算符中,优先级最高的运算符是()
A.<=
B.=
C.%
D.&&
19.有以下程序段 : int m=0,n=0; char c=‘a’; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入:10A10,则输出结果是()
A.10,A,10
B.10,a,10
C.10,a,0
D.10,A,0
20.以下程序: main( ) { char s1[40]="country",s2[20]="side"; int i=0,j=0; while(s1[i]!='\0') i++; while(s2[j]!='\0') s1[i++]=s2[j++]; s1[i]=0; printf("%s\n",s1); } 的输出结果为()
A.side
B.country
C.sidetry
D.countryside
二、判断题 (共 20 道试题,共 40 分)
21.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。
22.执行语句x=(a=3,b=a--);后,x,a,b的值依次是3,2,3。
23.strcmp用来比较两个字符串的大小。
24.if-goto语句可以构成循环。
25.C语言中有些不同类型的变量可以在一个表达式中运算。
26.#define和printf都是C语句。
27.Continue语句的作用是继续程序中的下一个循环。
28.函数的形参可以是表达式。
29.设ch是char型变量,其值为z,且有如上表达式: ch=(ch>’A’&&ch<=’Z’)?(ch+32):ch,该表达式的值是A。
30.C语言可以对字符型数据进行整体输入、输出。
31.常量的定义要通过#ifndef宏指令来实现。
32.一个函数的函数体包括声明部分和语句部分。
33.如果一个函数只能被本文件调用而不能被其它文件调用,则称该函数为内部函数。
34.宏定义的宏名一定要大写,否则无效。
35.在C语言中对文件操作必须先关闭当前文件,然后再打开一个新文件。
36.函数的函数体可以为空。
37.表达式中的运算对象可以是常数、变量和函数调用。
38.表达式y=(13>14?15:16)的值为15。
39.当C的值不为0时,(A=C)&&(B=C)能正确地将C的值赋给变量A,B。
40.为表示关系a>b>c,应使用C语言的表达式为:a>b&a>c。
C程序设计19春在线作业2-0001
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 60 分)
1.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是()
A.k%2
B.k%2==1
C.(k%2)!=0
D.!k%2==1
2.在C语言中,字符型数据在内存中是以什么形式存放的?()
A.原码
B.BCD码
C.反码
D.ASCII码
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"); } } } 的输出结果为()
A.a,ok,end
B.a,ok,endend
C.a,ok,end,end
D.a,ok,ok
4.以下程序: fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf(“%d”,a); } 程序的输出结果是()
A.0
B.29
C.31
D.无定值
5.以下4个选项中,不能看作一条语句的是()
A.{;}
B.a=0,b=0,c=0;
C.if(a>0);
D.if(b==0) m=1;n=2;
6.已知char a; int b; float c; double d; 执行语句c=a+b+c+d;后,变量c的数据类型是()
A.int
B.char
C.float
D.double
7.以下叙述中正确的是 ()
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
8.以下程序 main() { char s1[20]=“abc”,s2[20]=“123”; if(strcmp(s1,s2)>0) printf(“%s\n”,s1); else printf(“%s\n”,s2); } 的输出结果是()
A.abc
B.123
C.abc123
D.123abc
9.以下程序 : main() { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf("%d\n",d); } 的输出结果是()
A.1
B.0
C.非0的数
D.-1
10.有以下程序段int n=0,p; do{scanf(“%d”,&p); n++;} while(p!=12345 && n<3); 此处do-while循环的结束条件是 ()
A.p的值不等于12345且n的值小于3
B.p的值等于12345且n的值大于等于3
C.p的值不等于12345且n的值小于3
D.p的值等于12345或者n的值大于等于3
11.已知职工记录描述如下, struct worker { int no; char name[20]; char sex; struct { int day; int month; int year;}birth; }; struct worker w; 设变量w中的“生日”是“1993年10月25日”,下列对“生日”的正确赋值方式是()
A.day=25; month=10; year=1993;
B.w.birth.day=25; w.birth.month=10; w.birth.year=1993;
C.w.day=25; w.month=10; w.year=1993;
D.birth.day=25; birth.month=10; birth.year=1993;
12.设有以下说明语句: struct ex { int x; float y; char z;} example; 则下面的叙述中不正确的是()
A.struct是结构体类型的关键字
B.example是结构体类型名
C.x,y,z都是结构体成员名
D.struct ex是结构体类型名
13.下列关于C语言数据文件的叙述中正确的是()
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
14.以下不能正确定义二维数组的语句是()
A.int a[2][2]={{1},{2}};
B.int a[][2]={1,2,3,4};
C.int a[2][2]={{1},2,3};
D.int a[2][]={{1,2},{3,4}};
15.有如下函数调用语句: func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是()
A.3
B.4
C.5
D.有语法错
16.下列程序:main( ) { int a=7,b=5; printf("%d\n",b=b/a); } 的输出结果是()
A.5
B.1
C.0
D.不确定值
17.若以下程序所生成的可执行文件名为filel.exe; main(int argc,char *argv[]) { while(argc>1) { ++argv;printf("%s ",*argv); argc--;} } 当打入以下命令执行该程序时; FILE1 CHINA BEIJING SHANGHAI 程序的输出结果是()
A.CHINA BEIJING SHANGHAI
B.FILE1 CHINA BEIJING
C.C B S
D.F C B
18.若有下面的变量定义, int i,a[10],*p;以下语句中合法的是()
A.p=a+2;
B.p=a[5];
C.p=a[2]+2;
D.p=&(i+2);
19.下列描述中不正确的是()
A.字符型数组中能存放字符串。
B.可以对字符型数组进行整体输入、输出。
C.可以对整型数组进行整体输入、输出。
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
20.设a为int型变量,执行下列赋值语句a=125.534; a=(int)125.521%4;后,a的取值分别是()
A.125,31
B.125,1
C.125,31
D.125.534,2
二、判断题 (共 20 道试题,共 40 分)
21.C语言可以对字符型数据进行整体输入、输出。
22.若有宏定义:#define PI 3.14i5926,则系统预编译时会报错。
23.如果一个函数只能被本文件调用而不能被其它文件调用,则称该函数为内部函数。
24.表示X的值大于等于50或者小于等于20的C语言表达式为:X≥50||X≤20。
25.用scanf可以从键盘上读入一个含有空格的字符串。
26.一个程序中可以使用多条文件包含命令,但一条文件包含命令只能包含一个文件。
27.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。
28.关系表达式的运算结果是true或false。
29.使用if语句时,一定要有else语句与它配对。
30.C程序是以源程序文件为单位进行编译的。
31.C语言中的文件都是用ASCII码进行存贮的。
32.如果形参与实参的类型不一致,则以实参类型为准。
33.实型数据包括float和long两种类型。
34.宏定义不是C语言的语句,所以句尾没有分号。
35.Continue语句的作用是继续程序中的下一个循环。
36.C语言中,字符串是以‘\0’结束的,所以字符串的长度也包括‘\0’。
37.表达式1/4+2.75的值是3。
38.函数strlen("ASDFG\n")的值是7。
39.在C语言中定义一个文件指针的方法为:FILE? *fp; 。
40.不允许对二维数组的部分元素赋初值。