正确答案:A
正确答案:B
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.以下叙述中正确的是( )
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其他函数之前
D.C函数定义的格式是K&R格式
正确答案:C
2.以下叙述中不正确的是( )
A.在不同的函数中可以使用相同的名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
正确答案:B
3.以下叙述中不正确的是()。
A.一个好的程序应该有详尽的注释
B.在C程序中,赋值运算符的优先级最低
C.在C程序中,j++;是一条赋值语句
D.C程序中的#include和#define均不是C语句
正确答案:D
4.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()。
A.EOF
B.0
C.非零值
D.NULL
正确答案:D
5.设C语言中,int类型数据占2个字节,则short类型数据占()。
A.1个字节
B.2个字节
C.4个字节
D.8个字节
正确答案:B
6.每条C语句后面都要有一个( )
A.逗号
B.冒号
C.分号
D.括号
正确答案:A
7.关于建立函数的目的,以下正确的说法是()。
A.提高程序的执行效率
B.提高程序的可读性
C.减少程序的篇幅
D.减少程序文件所占内存
正确答案:D
8.关于链表的插入和删除,下列说法错误的是( )
A.插入位置包括表头、表中和表尾
B.从链表中删除一个结点,就是把它从内存中抹掉。
C.要删除链表中的某个结点,需自己定义删除函数。
D.删除结点要注意删除的结点是否是头结点
正确答案:A
9.用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是()。 long a=0xffffff; int b; char c;
A.0ffffff 和0x61
B.-1和98
C.-1和97
D.指向同一地址
正确答案:D
10.下列类型中错误的是( )
A.unsigned
B.unsigned float
正确答案:D
C.unsigned long int
正确答案:D
正确答案:B
D.unsigned int
正确答案:C
正确答案:C
11.在C语言中,char型数据在内存中的存储形式是()。
A.补码
B.反码
C.原码
D.ASCII码
正确答案:A
12.{图}。
A.A
B.B
C.C
D.D
正确答案:B
正确答案:C
13.以下不能正确定义二维数组的选项是( )
A.int a[2][2]={{1},{2}};
B.inta[][2]={1,2,3,4};
C.int a[2][2]={{1},2,3};
D.int a[2][]={{1,2},{3,4}};
正确答案:D
14.下列程序的输出结果是()。 main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d ",a,b); }
正确答案:A
A.a=1,b=0
B.a=2,b=1
C.a=1,b=1
D.a=2,b=2
正确答案:C
15.若有int *p=(int *)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为()。
A.scanf("%d",p);
正确答案:D
B.scanf("%d",&p);
正确答案:D
C.scanf("%d",*p);
正确答案:A
D.scanf("%d",**p);
正确答案:B
16.若已定义:
int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;
其中 0≤i≤9, 则对a数组元素不正确的引用是( )
A.a[p-a]
B.*(&a[i])
C.p[i]
D.a[10]
正确答案:B
17.int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为()。
A.1
B.2
C.3
D.不一定
正确答案:A
21.下列哪个不是算法的特征( )
A.有穷性
B.可行性
C.不确定性
D.输入
正确答案:D
19.以下运算符中,优先级最高的运算符是()。
A.||
B.%
C.!
D.==
正确答案:D
20.C语言中,定义结构体的保留字是()。
A.union
B.struct
C.enum
D.typedef
正确答案:D
正确答案:C
二、多选题 (共 20 道试题,共 40 分)21.定义语句:int x,y;若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的有()。
正确答案:B
A.1112<回车>
B.11,<空格>12<回车>
C.11,12<回车>
D.11,<回车>12<回车>
正确答案:C
22.能正确表示逻辑关系"a≥10"的C语言表达式是()。
A.a≥10
B.!(a<10)
C.a>=10
D.x4=1+2=3;
正确答案:A
23.关于while语句与do-while语句,以下正确的是()。
正确答案:C
A.while是当型结构
B.do-while是直到型结构
正确答案:C
C.两者有区别
D.两者无区别
正确答案:C
24.正确的if语句形式是()
A.if (x>y && x!=y);
B.if (x==y) x+=y;
C.if (x!=y) scanf("%d",&x) else scanf("%d",&y);
正确答案:C
D.if (x<y) {x++;y++;}
正确答案:C
25.以下不符合C语言语法的实型常量是()。
A.1.2E0.5
B.3.14.159E
C..5E-3
D.E15
正确答案:D
26.以下选项中属于C语言的类型有哪几项
A.signed short int
正确答案:C
B.unsigned long int
C.unsigned int
D.long short
正确答案:D
27.结构体如下所示
struct employees
{ char name[30];
int age;
float wage;
}
下面说法正确的有哪几项( )
A.上述形式的定义在程序运行时不会为该结构体类型分配内存空间
B.结构体变量在内存中存放时,占用连续的一段存储空间
C.上述结构体必须有关键字struct
D.上述结构体成员的类型不可以是已经定义过的结构体类型
正确答案:B
28.以下选项中不合法的字符常量是()。
A."B"
B.'\010'
C.68
D.D
21.关于for(表达式1,表达式2,表达式3)循环,以下正确的是()。
A.三个表达式都不可省略
B.表达式1可以省略
C.表达式2可以省略
D.表达式3可以省略
正确答案:B
30.以下叙述正确的是( )
A.预处理命令行都必须以"#"开始
B.在程序中凡是以"#"开始的语句行都是预处理命令行
C.C程序在执行过程中对预处理命令行进行处理
D.#define ABCD是正确的宏定义
正确答案:B
31.下列哪些是算法的描述方法( )
A.自然语言描述法
B.流程图描述法
C.伪代码描述法
D.N-S流程图描述法
正确答案:C
32.下面那些为合法整型常量()
A.190
B.0xf
C.0765
D.0xk
正确答案:A
33.以下函数,哪些属于动态申请空间的标准库函数
A.malloc()
B.calloc()
C.free()
D.strcmp()
正确答案:A
30.以下描述正确的是()。
A.使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成
正确答案:D
B.while循环是先判断表达式,后执行循环语句
C.do-while和for循环均是先执行循环语句,后判断表达式
正确答案:D
D.for,while和do-while循环中的循环体均可以由空语句构成
正确答案:C
27.计算机算法可以分为两大类( )
A.数值运算算法
B.非数值运算算法
C.符号运算算法
D.非符号运算算法
正确答案:A
39.能正确表示逻辑关系"a≥10"的C语言表达式是()。
A.a≥10
B.!(a<10)
C.a>=10
D.a<10
正确答案:D
23.下列选项中是C语言合法标志符的有()。
A.good_morning
正确答案:B
B.main
C.stdio.h
正确答案:D
D.8abc
正确答案:B
37.设有以下定义int a=0;double b=1.25;cha rc='A';#defined2则下面语句中正确的是()。
正确答案:D
A.a++;
B.b++;
C.c++;
D.d++;
正确答案:A
39.t为int类型,进入下面的循环之前,t的值为0do{………}while(t==1);则以下叙述中正确的是()
正确答案:A
A.循环控制表达式的值为1
B.循环控制表达式的值为0
C.循环控制表达式合法
D.其他说法都不对
正确答案:B
40.以下选项中,合法的字符常量是()。
A.' '
B.'17'
C."n"
D.'xaa'
正确答案:C
三、判断题 (共 10 道试题,共 20 分)
41.对C语言中用到的任何一个变量都要规定其类型。( )
42.C中*&a是取变量a的地址。()
43.C程序中,当调用函数时,由实参把值传递给形参,调用结束后,再由形参把值传回给实参。()
44.C语言中的标识符以字母或下划线开头,可跟任何字符。( )
45.按现代风格设计的C程序中,main中对函数声明的信息与定义此函数时第一行的信息完全相同。( )
46.格式字符%md中的m只能为正,不能为负。()
正确答案:B
47.c程序是由c文件构成,而c文件是由函数构成()
48.被main函数调用的函数只能是库函数。( )
41.C程序中的每一行就是一个语句。( )
50.全局变量的作用域一定比局部变量的作用域范围大。()
22秋西交《程序设计基础》在线作业[答案]历年参考题目如下:
20秋学期《高级语言程序设计基础》在线平时作业1
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 100 分)
1.执行下面程序段后,x的值是( )。 int x;printf("%d ",(x=3*5,x+5));
A.10
B.15
C.20
D.5
2.若执行下述程序时从键盘输入3 4,则输出结果是( )。
#include main( ) { int a,b,s;
scanf("%d%d",&a,&b);
s=a; if (a<b) printf("%d ",s*s); s=b; }
A.186
B.256
C.324
D.400
3.已知学生记录描述如下,下面对结构体成员"computer"的赋值方式正确的是( )。 struct student { int num; char name[8]; struct { float math; float engl; float computer; } mark;} std;
A.student.computer=84;
B.mark.computer=84;
C.std.mark.computer=84;
D.std.computer=84;
4.下程序( )。 main( ) { int x1=3, x2=0, x3=0; if (x1=x2+x3) printf("* * * *"); else printf("# # # #"); }
A.输出:* * * *
B.输出:# # #
C.#存在语法错误
D.无输出结果
5.若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是( )。
A.*pc[0]代表的是字符串"aaa
B.*pc[0]代表的是字符'a'
C.pc[0]代表的是字符串"aaa"
D.pc[0]代表的是字符'a'
6.以下正确的函数说明是( )。
A.int fun(int a, b)
B.float fun(int a; int b)
C.double fun( )
D.int fun(char a[ ][ ])
7.若a为int类型变量,则执行以下程序段后a的值为( )。 a=5;a*=a/=a++;
A.2
B.1
C.40
D.3
8.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.数组元素x[5]的地址
B.数组元素x[5]的值
C.数组元素x[6]的地址
D.数组元素x[6]的值
E.选项内容11
F.选项内容11
9.函数rewind(fp)的作用是:使文件位置指针( )。
A.重新返回文件的开头
B.返回到前一个字符的位置
C.指向文件的末尾
D.自动移至下一个字符的位置
10.执行以下程序段后,y的值是( )。 int a[ ]={1, 3, 5, 7, 9} int x=0, y=1, *ptr; ptr=&a[1]; while (!x) { y+=*(ptr+x); x++; }
A.1
B.2
C.4
D.24
11.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.数组元素x[5]的地址
B.数组元素x[5]的值
C.数组元素x[6]的地址
D.数组元素x[6]的值
E.选项内容11
F.选项内容11
G.选项内容11
12.以下运算正确的程序段是( )。
A.char str1[]="ABCDE", str2[]="abcdef"; strcpy(str1, str2);
B.char str[10], *st="abcde"; strcat(str, st);
C.char *st1="ABCDS", *st2="abcde"; strcat(st1,st2);
D.char str[10]="", *st="abcde"; strcat(str, st);"
13.设c1、c2均是char类型变量,则以下不正确的函数调用是( )。
A.scanf("c1=%cc2=%c",&c1,&c2);
B.getchar( )
C.putchar(c2);
D.putchar(c1,c2)"
14.以下能正确定义整型变量x、y和z并为其赋初值5的语句是( )。
A.int x=y=z=5;
B.int x,y,z=5;
C.int x=5,y=5,z=5;
D.x=5,y=5,z=5;"
15.若a、b、c均为int型变量,则执行以下程序段后的输出结果为( )。 b=(a=10,a+5,c=10); printf("a=%d,b=%d,c=%d ",a,b,c); c=(a=10,b=5,a+b);printf("a=%d,b=%d,c=%d ",a,b,c);
A.a=10,b=15,c=10a=10,b=5,c=10
B.a=10,b=10,c=10a=10,b=5,c=10
C.a=10,b=10,c=10a=10,b=5,c=15
D.a=10,b=10,c=10a=10,b=5,c=5
16.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。
A.num%2==1
B.!(num%2==0)
C.!(num%2)
D.num%2
17.若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是( )。
A.2
B.3
C.4
D.无确定值
18.若a和b均为int型变量,则执行以下程序断后x的输出是( )。 x=15;y=15;printf("%d ",x%=(y%=2));
A.0
B.1
C.6
D.12
19.以下对指针变量的操作中,不正确的是( )。
A.int p, *q; q=&p;
B.int *p, *q; q=p=NULL;
C.int a=5, *p; *p=a;
D.int a=5, *p=&a, *q=&a; *p=*q;"