电子科技大17秋《C语言》在线作业123
17秋《C语言》在线作业1一、单选题:【20道,总分:100分】
1.已知:int *p( ); p是( ) (满分:5)
A. 指向int型的指针变量
B. int型的指针数组
C. 一个指向函数的指针变量,函数的返回值是int型
D. 一个函数,该函数的返回值是指向int型的指针变量
2.若有如下语句:intx=3; do { printf(" %d\n",x -=2);} while(!(--x));则上面程序段( ) (满分:5)
A. 输出的是 1
B. 输出的是1和-2
C. 输出的是3和0
D. 是死循环
3.在"文件包含"预处理语句的使用形式中,当#include后面的文件名用(尖括号)括起时,寻找被包含文件的方式是( ) (满分:5)
A. 仅仅搜索当前目录
B. 仅仅搜索源程序所在目录
C. 直接按系统设定的标准方式搜索目录
D. 先在源程序所在目录搜索,再按系统设定的标准方式搜索
4.下面程序的运行结果是( )#include "stdio.h"main( ){int i; for(i=1;i<=5;i++){if(i%2) printf("#");else continue;printf("*");}printf("$");} (满分:5)
A. *#*#$
B. #*#*#*$
C. *#*#$
D. #*#*$
5.请读程序:#include#define MUL(x,y)(x)*ymain( ) {int a=3,b=4,c;c=MUL(a++,b++);printf("%d\n",c); }上面程序的输出结果是( ) (满分:5)
A. 12
B. 15
C. 20
D. 16
6.以下各组选项中,均能正确定义二维实型数组a的选项是( ) (满分:5)
A. float a; float a[]; float a[]={{1},{0}};
B. float a(3,4);float a;float a[][]={{0},{0}};
C. float a;static float a[]={{0},{0}};auto float a[]={{0},{0},{0}};
D. float a;float a[];float a[]
7.以下程序段x= -1;do{x=x*x;}while(!x);则( ) (满分:5)
A. 是死循环
B. 循环执行二次
C. 循环执行一次
D. 有语法错误
8.已知函数的调用形式:fread(buffer,size,count,fp),其中buffer代表的是( ) (满分:5)
A. 一个整型变量,代表要读入的数据项总数
B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址
D. 一个存储区,存放要读的数据项
9.下面不正确的字符串常量是( ) (满分:5)
A. abc'
B. "12'12"
C. "0"
D. ""
10.建立函数的目的之一是( ) (满分:5)
A. 提高程序的执行效率
B. 提高程序的可读性
C. 减少程序的篇幅
D. 减少程序文件所占内存
11.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为( ) (满分:5)
A. char<int<1ong int<=float<double
B. char=int<1ongint<=float<double
C. char<int<1ongint=float=double
D. char=int=1ong int<=float<double
12.以下正确的描述是( ) (满分:5)
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可以嵌套,但函数的调用可以嵌套
C. 函数的定义和函数的调用均不可以嵌套
D. 函数的定义和函数的调用均可以嵌套
13.以下正确的说法是( ) (满分:5)
A. 定义函数时,形参的类型说明可以放在函数体内
B. return后边的值不能为表达式
C. 如果函数值的类型与返回值类型不一致,以函数值类型为准
D. 如果形参与实参的类型不一致,以实参类型为准
14.以下能对二维数组a进行正确初始化的语句是( ) (满分:5)
A. int a[]={{1,0,1},{5,2,3}};
B. int a[]={{1,2,3},{4,5,6}};
C. int a={{1,2,3},{4,5},{6}};
D. int a[]={{1,0,1},{},{1,1}};
15.以下for循环的执行次数是( )for(x=0,y=0;(y=123)&&(x<4);x++); (满分:5)
A. 是无限循环
B. 循环次数不定
C. 执行4次
D. 执行3次
16.以下符合C语言语法的赋值表达式是( ) (满分:5)
A. d=9+e+f=d+9
B. d=9+e,f=d+9
C. d=9+e,e++,d+9
D. d=9+e++=d+7
17.下面四个选项中,均是非法常量的选项是( ) (满分:5)
A. as' -0fff '\0xa'
B. '\\' '\01' 12,456
C. -0xl8 01177 0xf
D. 0xabc'\0' "a"
18.设有以下说明,则下面不正确的叙述是( )uniondata {inti; charc; f1oatf;)un; (满分:5)
A. un所占的内存长度等于成员f的长度
B. un的地址和它的各成员地址都是同一地址
C. un可以作为函数参数
D. 不能对un赋值,但可以在定义un时对它初始化
19.为了避免嵌套的条件分支语句 if——else中的else总是与( )组成成对关系 (满分:5)
A. 缩排位置相同的
B. 在其之前未配对的
C. 在其之前未配对的最近的if
D. 在同一行上的if
20.已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为( )inta; f(a); (满分:5)
A. f(intarray[])
B. f(intarray[])
C. f(intarray[]
D. f(intarray)
17秋《C语言》在线作业2
一、单选题:【20道,总分:100分】
1.若调用一个函数,且此函数中没有return语句,关于该函数则正确的说法是( ) (满分:5)
A. 没有返回值
B. 返回若干个系统默认值
C. 能返回一个用户所希望的函数值
D. 返回一个不确定的值
2.以下叙述中正确的是( ) (满分:5)
A. 在程序的一行上可以出现多个有效的预处理命令行
B. 使用带参的宏时,参数的类型应与宏定义时的一致
C. 宏替换不占用运行时间,只占编译时间
D. 在以下定义中CR是称为"宏名"的标识符 #defineCR045
3.以下程序有语法性错误,有关错误原因的正确说法是( ) main( ){int G=5,k;void prtchar( );......k=prtchar(G);......} (满分:5)
A. 语句voidprtchar( );有错,它是函数调用语句,不能用void 说明
B. 变量名不能使用大写字母
C. 函数说明和函数调用语句之间有矛盾
D. 函数名不能使用下划线
4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( ) (满分:5)
A. float型
B. int型
C. long型
D. double型
5.已知一个函数的定义如下:double fun(int x, double y) { …… } 则该函数正确的函数原型声明为( ) (满分:5)
A. double fun(int x,double y)
B. fun(int x,double y)
C. double fun(int,double);
D. fun(x,y) ;
6.以下错误的描述是: 函数调用可以( ) (满分:5)
A. 出现在执行语句中
B. 出现在一个表达式中
C. 做为一个函数的实参
D. 做为一个函数的形参
7.有两个字符数组a、b,则以下正确的输入格式是( ) (满分:5)
A. gets(a,b);
B. scanf("%s%s",a,b);
C. scanf("%s%s",&a,&b);
D. gets("a"),gets ("b");
8.若调用一个函数,且此函数中没有return语句,则正确的说法是( ) (满分:5)
A. 该函数没有返回值
B. 该函数返回若干个系统默认值
C. 能返回一个用户所希望的函数值
D. 返回一个不确定的值
9.请阅读以下程序:main( ){inta=5,b=0,c=0;if(a=b+c)printf("***\n");e1se printf("$$$\n");则以上程序( ) (满分:5)
A. 有语法错不能通过编译
B. 可以通过编译但不能通过连接
C. 输出***
D. 输出$$$
10.若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是( ) (满分:5)
A. -1
B. 1
C. 0
D. NULL
11.下面函数调用语句含有实参的个数为( ) func((expl,exp2), (exp3,exp4,exp5)); (满分:5)
A. 1
B. 2
C. 4
D. 5
12.x,i,j和k都是int型变量,则执行下面表达式后x的值为( )(i=4,j=16,k=32) (满分:5)
A. 4
B. 16
C. 32
D. 52
13.C语言提供的预处理功能包括条件编译,其基本形式为:#XXX标识符 程序段1#else程序段2#endif这里XXX可以是( ) (满分:5)
A. define或include
B. ifdef或include
C. ifdef或ifndef或define
D. ifdef或ifndef或if
14.以下正确的描述是( ) (满分:5)
A. C语言的预处理功能是指完成宏替换和包含文件的调用
B. 预处理指令只能位于C源程序文件的首部
C. 凡是C源程序中行首以"#"标识的控制行都是预处理指令
D. C语言的编译预处理就是对源程序进行初步的语法检查
15.sizeof(float)是( ) (满分:5)
A. 一个整型表达式
B. 一种函数调用
C. 一个不合法的表达式
D. 一个不合法的表达式
16.以下不正确的说法是( ) (满分:5)
A. 实参可以是常量,变量或表达式
B. 形参可以是常量,变量或表达式
C. 实参可以为任意类型
D. 如果形参和实参的类型不一致,以形参类型为准
17.以下描述中正确的是( ) (满分:5)
A. 由于do~while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B. do~while循环由do开始,用while结束,在while(表达式) 后面不能写分号
C. 在do~while循环体中,一定要有能使while后表达式值变为零("假")的操作
D. do~while循环中,根据情况可以省略while
18.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( ) (满分:5)
A. D
B. 68
C. 不确定的值
D. C
19.以下正确的说法是( ) (满分:5)
A. 实参和与其对应的形参各占用独立的存储单元
B. 实参和与其对应的形参共占用一个存储单元
C. 只有当实参和与其对应的形参同名时才共占用存储单元
D. 形参是虚拟的,不占用存储单元
20.有以下程序: #includemain( ) {char p[ ]={‘a’,’b’,’c’},q={‘a’,’b’,’c’}; printf(“%d%d\n”,strlen(p),strlen(q)); } 以下叙述中正确的是( ) (满分:5)
A. 在给p和q数组置初值时,系统回自动添加字符串结束符,故输出的长度都为3
B. 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3
C. 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
D. 由于p和q数组中都没有字符串结束符,长度都不能确定
17秋《C语言》在线作业3
一、单选题:【20道,总分:100分】
1.设有如下的程序段: char str[ ]="hello"; char *ptr; ptr=str;执行上面的程序段后,*(ptr+5)的值为( ) (满分:5)
A. o''
B. ''\0''
C. 不确定的值
D. ''o''的地址
2.设有说明:char w; intx;f1oaty;doublez;则表达式w* x+z-y值的数据类型为( ) (满分:5)
A. float
B. char
C. int
D. double
3.若有说明:int a;则对a数组元素的正确引用是( ) (满分:5)
A. a
B. a
C. a(5)
D. a
4.若有以下定义,则能使值为3的表达式是( )intk= 7,x =12; (满分:5)
A. x%=(k%= 5)
B. x%=(k-k%5)
C. x%=k- k%5
D.(x%=k)-(k%=5)
5.以下程序的输出结果是( ) main( ){inta=100,x =10,y=20,okl=5,ok2=0; if (x<y) if(y ! =10) if(!okl)a=1; else if(ok2)a=10; a=-1; printf("%d\n",a );} (满分:5)
A. 1
B. 0
C. -1
D. 值不确定
6.若有说明:int a[ ]={0,0};则下面不正确的叙述是( ) (满分:5)
A. 数组a的每个元素都可得到初值0
B. 二维数组a的第一维大小为1
C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a行数为1
D. 只有元素a和a可得初值0,其余元素均得不到初值0
7.下面程序的输出是( )main( ) {char x=040; printf("%d\n",x=x<<1);} (满分:5)
A. 100
B. 160
C. 120
D. 64
8.main函数的正确说明形式是( ) (满分:5)
A. main(intargc,char*argv)
B. main(intabc,char**abv)
C. main(intargc,charargv)
D. )main(intc,charv[])
9.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ) (满分:5)
A. extern
B. register
C. auto
D. static
10.在访问一个结构元素前你必须定义( ) (满分:5)
A. 结构体
B. 结构体变量
C. 定义结构指针
D. A和B
11.有两个字符数组a、b,则以下正确的输入格式是( ) (满分:5)
A. gets(a,b);
B. scanf("%s%s",a,b);
C. scanf("%s%s",&a,&b);
D. gets("a"),gets ("b");
12.以下描述中正确的是( ) (满分:5)
A. 由于do~while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B. do~while循环由do开始,用while结束,在while(表达式) 后面不能写分号
C. 在do~while循环体中,一定要有能使while后表达式值变为零("假")的操作
D. do~while循环中,根据情况可以省略while
13.设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( ) (满分:5)
A. 7
B. 8
C. 6
D. 2
14.以下叙述中不正确的是( ) (满分:5)
A. 在不同的函数中可以使用相同的名字的变量
B. 函数中的形式参数是局部变量
C. 在一个函数内定义的变量只在本函数范围内有效
D. 在一个函数内的复合语句中定义的变量在本函数范围内有效
15.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。请选择填空( )#include main( ){inti=0,j,k; do{ i++;k=316-13*i;} while(【1】);j=k/11; printf(" 316=13* %d+11*%d",i,j);} (满分:5)
A. k/11
B. k%11
C. k/11==0
D. k/11== 0
16.有以下程序: union pw { int i; char ch[2];}a; main( ) {a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);} 程序的输出结果是( ) (满分:5)
A. 13
B. 14
C. 208
D. 209
17.下面程序的功能是计算正整数2345的各位数字平方和,请选择填空( )#includemain( ){intn,sum=0;n=2345do{ sum=sum+(n%10)*(n%10);n=【 】;}while(n);printf("sum=%d",sum);} (满分:5)
A. n/1000
B. n/100
C. n/10
D. n%10
18.当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( ) (满分:5)
A. K%2
B. K%2==1
C. (K%2)!=0
D. !K%2==1
19.为了避免在嵌套的条件语句if - else中产生二义性,C语言规定else子句总是与( )配对 (满分:5)
A. 缩排位置相同的if
B. 其之前最近的if
C. 之后最近的if
D. 同一行上的if
20.以下叙述中正确的是( ) (满分:5)
A. 在程序的一行上可以出现多个有效的预处理命令行
B. 使用带参的宏时,参数的类型应与宏定义时的一致
C. 宏替换不占用运行时间,只占编译时间
D. 在以下定义中CR是称为"宏名"的标识符 #defineCR045
页:
[1]