14秋《C语言》在线作业答案
14秋《C语言》在线作业1试卷总分:100 测试时间:--
一、单选题(共20道试题,共100分。)
1.putchar函数可以向终端输出一个( )
A. 整型变量表达式值
B. 实型变量值
C. 字符串
D. 字符或字符型变量值
满分:5分
2.C语言规定:在一个源程序中,main函数的位置是( )
A. 必须在最开始
B. 必须在系统调用的库函数的后面
C. 可以任意
D. 必须在最后
满分:5分
3.有以下程序,其中函数f的功能是将多个字符串按字典顺序排序 #include<string.h> void f(char *p[],int n) { char *t; int i,j; for(i=0; i<n-1; i++) for(j=i+1;j<n; j++) if(strcmp(p,p)>0){t = p;p=p;p =t;} } main( ) { char *p ={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”}
A. 2
B. 3
C. 6
D. 4
满分:5分
4.若有定义:int a,则对a数组的第i行j列元素地址的正确引用为( )
A. *(a+j)
B. (a+i)
C. *(a+j)
D. a+j
满分:5分
5.以下描述中正确的是( )
A. 由于do~while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B. do~while循环由do开始,用while结束,在while(表达式) 后面不能写分号
C. 在do~while循环体中,一定要有能使while后表达式值 变为零("假")的操作
D. do~while循环中,根据情况可以省略while
满分:5分
6.下关于运算符优先顺序的描述中正确的是( )
A. 关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B. 逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
C. 赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D. 算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
满分:5分
7.若要求从键盘读入含有空格字符的字符串,应使用函数( )
A. gets()
B. scanf()
C. getchar()
D. getch()
满分:5分
8.为了避免在嵌套的条件语句if - else中产生二义性,C语言规定else子句总是与( )配对
A. 缩排位置相同的if
B. 其之前最近的if
C. 之后最近的if
D. 同一行上的if
满分:5分
9.下面程序段的运行结果是 ( ) char c={'a','b','\0','c','\0'}; printf("%s",c);
A. ’a’’b’
B. ab
C. ab c
D. ab□(其中□表示空格)
满分:5分
10.若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是( )
A. -1
B. 1
C. 0
D. NULL
满分:5分
11.以下不正确的定义语句是( )
A. double x={2.0,4.0,6.0,8.0,10.0};
B. int y={0,1,3,5,7,9};
C. char c1[]={’1’,’2’,’3’,’4’,’5’};
D. char c2[]=}{'\x10','\xa','\x8'};
满分:5分
12.以下对一维整型数组a的正确说明是( )
A. int a(10)
B. int n=10,a;
C. int n;scanf("%d",&n);int a;
D. #define SIZE 10 <CR> int a;
满分:5分
13.若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是( )
A. (*p)max(a,b);
B. *pmax(a,b);
C. (*p)(a,b);
D. *p(a,b);
满分:5分
14.下列程序执行后的输出结果是( ) void func(int *a,int b[]) { b[0]=*a+6; } main() { int a,b[5]={0}; a=0; b[0]=3; func(&a,b); printf("%d\n",b[0]); }
A. 6
B. 7
C. 8
D. 9
满分:5分
15.设有语句int a,*p=*a;则下面表达式中属于地址表达式的是( )
A. a
B. a
C. *(p+1*10+2)
D. *(a+2)
满分:5分
16.对宏命令的处理是( )
A. 在程序执行时进行
B. 在程序对其它语句进行编译前进行
C. 在程序连接时进行
D. 与程序中其它语句同时进行编译
满分:5分
17.若调用一个函数,且此函数中没有return语句,则正确的说法是( )
A. 该函数没有返回值
B. 该函数返回若干个系统默认值
C. 能返回一个用户所希望的函数值
D. 返回一个不确定的值
满分:5分
18.变量的指针,其含义是指该变量的( )
A. 值
B. 地址
C. 名
D. 一个标志
满分:5分
19.下面程序段的循环次数是( ) int k=2; while(k==0) printf(″%d″,k); k--; printf(″\n″);
A. 0次
B. 1次
C. 2次
D. 无限次
满分:5分
20.下面程序的运行结果是( ) main() {char str[]="SSSWLIA", c; int k; for(k=2;(c=str)!='\0';k++) {switch(c) {case 'I': ++k; break; case 'L': continue; default: putchar(c);continue; } putchar('*'); } }
A. SSW*
B. SW*
C. SW*A
D. SW
满分:5分
14秋《C语言》在线作业2
试卷总分:100 测试时间:--
一、单选题(共20道试题,共100分。)
1.设变量a b c d 和y都已经正确定义并赋值,若有以下if 语句: if(a<b) if(c==d) y=0; else y=1; 给语句所表示的含义是( )
A. y=0 a<b且c=d; y=1 a>=b
B. y=0 a<b且c=d; y=1 a>=b 且 c!=d
C. y=0 a<b且c=d; y=1 a<b 且 c!=d
D. y=0 a<b且c=d; y=1 c!=d
满分:5分
2.以下正确的叙述是( )
A. 在C程序中,每行中只能写一条语句
B. 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C. 在C程序中,无论是整数还是实数,都能被准确无误地表示
D. 在C程序中,%是只能用于整数运算的运算符
满分:5分
3.有以下程序: #include <string.h> main() {char p[ ]={‘a’,’b’,’c’},q={‘a’,’b’,’c’}; printf(“%d%d\n”,strlen(p),strlen(q)); } 以下叙述中正确的是( )
A. 在给p和q数组置初值时,系统回自动添加字符串结束符,故输出的长度都为3
B. 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3
C. 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
D. 由于p和q数组中都没有字符串结束符,长度都不能确定
满分:5分
4.标准库函数fgets(s,n,f)的功能是( )
A. 从文件f中读取长度为n的字符串存入s中
B. 从文件f中读取长度小于n的字符串存入s中
C. 从文件f中读取n个字符串存入s中
D. 从文件f中读取长度为n-1的字符串存入s中
满分:5分
5.若i为整型变量,则以下循环执行次数是( ): for (i=2;i==0;) printf("%d",i-- );
A. 无限次
B. 0次
C. 1 次
D. 2次
满分:5分
6.#define能作简单的替代,用宏替代计算多项式4*x*x+3*x+2之值的函数f,正确的宏定义是( )
A. #define f(x) 4*x*x+3*x+2
B. #define f 4*x*x+3*x+2
C. #define f(a) (4*a*a+3*a+2)
D. #define (4*a*a+3*a+2)f(a)
满分:5分
7.当a=1,b=3,c=5,d=4 ,执行完下面一段程序后x 的值是 ( ) if(a<b) if(c<d) x=1; else if(a<c) if(b<d) x=2; else x= 3; else x=6; else x=7;
A. 1
B. 2
C. 3
D. 6
满分:5分
8.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是( )
A. 地址传递
B. 值传递
C. 有实参传给形参,再由形参传给实参
D. 由用户指定传递方式
满分:5分
9.以下关于枚举的叙述不正确的是( )
A. 枚举变量只能取对应枚举类型的枚举元素表中元素
B. 可以在定义枚举类型时对枚举元素进行初始化
C. 枚举元素表中的元素有先后次序,可以进行比较
D. 枚举元素的值可以是整数或字符串
满分:5分
10.已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为( ) int a; f(a);
A. f(int array[])
B. f(int array[])
C. f(int array[]
D. f(int array)
满分:5分
11.以下不能对二维数组a进行正确初始化的语句是( )
A. int a={0};
B. int a[][3」={{1,2},{0}};
C. int a={{1,2},{3,4},{5,6}};
D. int a[]={1,2,3,4,5,6};
满分:5分
12.判断字符串s1是否大于字符串s2应当使用( )
A. if (sl>s2)
B. if (strcmp(s1,s2))
C. if (strcmp(s2,sl)>0)
D. if (strcmp(s1,s2)>0)
满分:5分
13.下面程序的运行结果是( ) #include <stdio. h> main(){ int x,i; for(i=1;i<=100;i++){x=i;if(++x%2==0) if(++x%3==0) if(++x%7==0) printf("%d",x); } }
A. 39 81
B. 42 84
C. 26 68
D. 28 70
满分:5分
14.以下程序有语法错误,有关错误原因的正确说法是 ( ) main() { int G=5,k; void prt_char(); ... k=prt_char(G); ... }
A. 语句void prt_char( );有错,它是函数调用语句,不能用void说明
B. 变量名不能使用大写字母
C. 函数说明和函数调用语句之间有矛盾
D. 函数名不能使用下划线
满分:5分
15.若有以下程序段:int a[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) {t=a;j=i-1; while(j>=0&&t>a) {a=a;j- -;} a=t;} ...... 则该程序段的功能是( )
A. 对数组a进行插入排序(升序)
B. 对数组a进行插入排序(降序)
C. 对数组a进行选择排序(升序)
D. 对数组a进行选择排序(降序)
满分:5分
16.在C语言中,一维数组的定义方式为:类型说明符 数组名( )
A. [常量表达式]
B. [整形表达式]
C. [ 整型常量]或[整型表达式]
D. [整型常量]
满分:5分
17.已知一个函数的定义如下:double fun(int x, double y) { …… } 则该函数正确的函数原型声明为( )
A. double fun (int x,double y)
B. fun (int x,double y)
C. double fun (int ,double );
D. fun(x,y) ;
满分:5分
18.以下符合C语言语法的赋值表达式是( )
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
满分:5分
19.以下能对一维数组a进行正确初始化的语句是( )
A. int a=(0,0,0,0,0)
B. int a={}
C. int a[]={0};
D. int a={10*1};
满分:5分
20.当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )
A. K%2
B. K%2==1
C. (K%2)!=0
D. !K%2==1
满分:5分
14秋《C语言》在线作业3
试卷总分:100 测试时间:--
一、单选题(共20道试题,共100分。)
1.下面程序的运行结果是( ) main() {char a="AB",b="LMNP"; int i=0;strcat(a,b); whi1e(a!='\0')b=a;puts(b);}
A. LB
B. ABLMNP
C. AB
D. LBLMNP
满分:5分
2.若有说明:int a[ ]={0,0};则下面不正确的叙述是( )
A. 数组a的每个元素都可得到初值0
B. 二维数组a的第一维大小为1
C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a行数为1
D. 只有元素a和a可得初值0,其余元素均得不到初值0
满分:5分
3.设有以下说明,则下面不正确的叙述是( ) union data {int i; char c; f1oat f; )un;
A. un所占的内存长度等于成员f的长度
B. un的地址和它的各成员地址都是同一地址
C. un可以作为函数参数
D. 不能对un赋值,但可以在定义un时对它初始化
满分:5分
4.以下不正确的说法为( )
A. 在不同函数中可以使用相同名字的变量
B. 形式参数是局部变量
C. 在函数内定义的变量只在本函数范围内有效
D. 在函数内的复合语句中定义的变量在本函数范围内有效
满分:5分
5.设有以下语句: char str={"aaa","bbb","ccc","ddd"}; char *strp; int i; for(i=0;i<4;i++) strp=str; 若0<=k<4,下列选项中对字符串的非法引用是( )
A. strp
B. str
C. strp
D. *strp
满分:5分
6.假定ptr1和ptr2分别是指向某个字符串的指针,则在下列选项中非法的语句中是( )
A. if(ptr1==ptr2) printf("yes.");
B. *ptr1=48+(ptr1-ptr2);
C. *(ptr1+=2)=*ptr2;
D. *(ptr1-1+ptr2)=getchar();
满分:5分
7.以下不正确的说法是( )
A. 实参可以是常量,变量或表达式
B. 形参可以是常量,变量或表达式
C. 实参可以为任意类型
D. 如果形参和实参的类型不一致,以形参类型为准
满分:5分
8.若用数组名作为函数调用的实参,传递给形参的是( )
A. 数组的首地址
B. 数组第一个元素的值
C. 数组中全部元素的值
D. 数组元素的个数
满分:5分
9.下面程序的运行结果是( ) #include "stdio.h" main() {int a,b; for(a=1,b=1;a<=100;a++) {if (b>=20) break; if(b%3==1) {b+=3;continue;} b-=5;} printf("%d\n",a);}
A. 7
B. 8
C. 9
D. 10
满分:5分
10.与下面程序段等价的是( ) for(n=100;n<=200; n++) {if (n%3==0) continue; printf("%4d",n);}
A. for(n=100;(n%3)&& n<=200;n++) printf("%4d",n);
B. for(n=100;(n%3)|| n<=200;n++) printf("%4d",n);
C. for(n=100;n<=200;n++) if(n%3!=0) printf("%4d",n)
D. for(n=100;n<=200;n++) {if(n%3) printf("%4d",n); else continue; break;}
满分:5分
11.请读程序: #include<stdio.h> #define MUL(x,y) (x)*y main() {int a=3,b=4,c; c=MUL(a++,b++); printf("%d\n",c); } 上面程序的输出结果是( )
A. 12
B. 15
C. 20
D. 16
满分:5分
12.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是( )
A. fopen( )
B. fseek( )
C. fclose( )
D. rewind( )
满分:5分
13.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )
A. int
B. float
C. double
D. 不确定
满分:5分
14.若调用一个函数,且此函数中没有return语句,关于该函数则正确的说法是( )
A. 没有返回值
B. 返回若干个系统默认值
C. 能返回一个用户所希望的函数值
D. 返回一个不确定的值
满分:5分
15.一个C语言程序是由( )
A. 一个主程序和若干子程序组成
B. 函数组成
C. 若干过程组成
D. 若干子程序组成
满分:5分
16.以下不正确的说法是( )
A. 全局变量,静态变量的初值是在编译时指定的
B. 静态变量如果没有指定初值,则其初值为0
C. 动态变量如果没有指定初值,则其初值不确定
D. 函数中的静态变量在函数每次调用时,都会重新设置初值
满分:5分
17.已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的输出结果是( ) void print_value(int *x) { printf(“%d\n”,++*x); }
A. 23
B. 24
C. 25
D. 26
满分:5分
18.若有说明:int a; 则对a数组元素的正确引用是( )
A. a
B. a
C. a
D. a(2)(1);
满分:5分
19.若有条件表达式(exp)a++:b--,则以下表达式中能完全等价于表达式(exp)的是( )
A. (exp==0)
B. (exp!=0)
C. (exp==1)
D. (exp!=1)
满分:5分
20.若有以下说明和语句,则在scanf函数调用语句中对结构体变量成员的不正确引用方式是( ) struct pupil {char name[20]; int age; int sex; }pup,* p; p= pup;
A. scanf ("%s",pup[0].name);
B. scanf("%d",&pup[0].age);
C. scanf("%d",&(p-> sex));
D. scanf("%d" ,&p-> age);
满分:5分
答案请在附件下载,需要辅导请联系客服qq 1647861640
页:
[1]