1.对以下说明语句的正确理解是( )。 int a[10]={6,7,8,9,10};
A.将5个初值依次赋给a[1]至a[5]
B.将5个初值依次赋给a[0]至a[4]
C.将5个初值依次赋给a[6]至a[10]
D.因为数组与初值的个数不相同,所以此语句不正确
2.下面程序段的输出结果是( )。 int a=023;printf("%d\n",--a);
A.23
B.17
C.18
D.24
3.若调用fputc函数输出字符成功,则函数的返回值是( )。
A.输出的字符
B.-1
C.0
D.EOF
4.系统的标准输入文件是指( )。
A.键盘
B.显示器
C.软盘
D.硬盘
5.已知学生记录描述如下,下面对结构体成员"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;
6.执行下面程序段后,x的值是( )。 int x;printf("%d\n",(x=3*5,x+5));
A.10
B.15
C.20
D.5
7.以下程序执行后a的值为( )。 main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf("%d\n",a); }
A.-1
B.0
C.1
D.2
8.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是( )。
A.float
B.int
C.long
D.double
9.设ch是char类型变量,其值是A,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( )。
A.Z
B.A
C.a
D.z
10.若有以下语句,则对x数组元素引用不正确的是( )。 int x[ ]={1, 2, 3, 4, 5, 6}, *ptr;ptr=x;
A.*(--ptr)
B.*(ptr--)
C.*(ptr++)
D.*(++ptr)
11.设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是( )。 for (y=100; x!=y; ++x,y++) printf("****\n");
A.循环体只执行一次
B.是无限循环
C.循环体一次都不执行
D.for语句中存在语法错误
12.若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是( )。
A.*pc[0]代表的是字符串"aaa
B.*pc[0]代表的是字符'a'
C.pc[0]代表的是字符串"aaa"
D.pc[0]代表的是字符'a'
13.若有以下程序段: for (m=1; m<=100; m++) { scanf("%d", &y); if (y<0) continue; printf("%3d", m); }正确的描述是( )。
A.当y<0时整个循环结束
B.y>=0时什么也不输出
C.printf函数永远也不执行
D.最多允许输出100个非负整数
14.若使用一维数组名作函数实参,则以下正确的说法是( )。
A.必须在主调函数中说明此数组的大小
B.实参数组类型与形参数组类型可以不匹配
C.在被调函数中,不需要考虑形参数组的大小
D.实参数组名与形参数组名必须一致
15.若a为int类型变量,则执行以下程序段后a的值为( )。 a=5;a*=a/=a++;
A.2
B.1
C.40
D.3
16.若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是( )。
A.2
B.3
C.4
D.无确定值
17.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。
A.num%2==1
B.!(num%2==0)
C.!(num%2)
D.num%2
18.定义如下变量和数组:int k; int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。for(k=0;k<3;k++) printf("%d",a[k][2-k]);
A.3 5 7
B.3 6 9
C.1 5 9
D.1 4 7
19.设有一段程序: int *var,a; a=100;var=&a;a=*var+10; 执行上面程序段后a的值为( )。
A.120
B.110
C.100
D.90
20.若有定义:int a[2][3];,则以下对a数组元素地址的正确表示为( )。
A.*(a+1)
B.*(a[1]+2)
C.a[1]+3
D.a[0][0]
21.若执行fopen函数时发生错误,则函数的返回值是( )。
A.随机值
B.1
C.NULL
D.EOF
22.下面程序的运行结果是( )。 char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]);
A.输出空格
B.\0
C.e
D.f
23.以下对指针变量的操作中,不正确的是( )。
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;"
24.下列关于C语言的叙述错误的是( )。
A.大写字母和小写字母的意义相同
B.不同类型的变量可以在一个表达式中
C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D.同一个运算符号在不同的场合可以有不同的含义
25.如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。
A.该变量只在该复合语句中有效
B.该变量在该函数中有效
C.该变量在本程序范围内有效
D.该变量为非法变量
《高级语言程序设计基础X》在线平时作业2-00001
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 100 分)
1.C语言中字符型(char)数据在内存中的存储形式是( )。
A.原码
B.补码
C.反码
D.ASCII码
2.C语言的编译系统对宏命令的处理是( )。
A.在对源程序中其它成分正式编译之前进行的
B.和C程序中的其它语句同时进行的
C.在程序连接时进行的
D.在程序运行时进行的
3.以下对二维数组a的正确说明是( )。
A.int a[3][];
B.float a(3,4);
C.double a[1][4]
D.float a(3)(4);
4.若执行下述程序时从键盘输入3 4,则输出结果是( )。
#include main( ) { int a,b,s;
scanf("%d%d",&a,&b);
s=a; if (a<b) printf("%d\n",s*s); s=b; }
A.186
B.256
C.324
D.400
5.设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是( )。 for (y=100; x!=y; ++x,y++) printf("****\n");
A.循环体只执行一次
B.是无限循环
C.循环体一次都不执行
D.for语句中存在语法错误
6.以下在任何情况下计算两数积时都不会引起二义性的宏定义是( )。
A.#define MUL(x,y) x*y
B.#define MUL(x,y) (x)*(y)
C.#define MUL(x,y) (x*y)
D.#define MUL(x,y) ((x)*(y))"
7.对两个数组a和b进行如下初始化 char a[]="ABCDEF"; char b[]={'A','B','C','D','E','F'}; 则以下叙述正确的是( )。
A.a与b数组完全相同
B.a与b长度相同
C.a和b中都存放字符串
D.a数组比b数组长
8.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是( )。
A.float
B.int
C.long
D.double
9.以下对C语言中共用体类型数据的叙述正确的是( )。
A.可以对共用体变量名直接赋值
B.一个共用体变量中可以同时存放其所有成员
C.一个共用体变量中不能同时存放其所有成员
D.共用体类型定义中不能出现结构体类型的成员
10.已知 long i=32768;执行语句printf("%d",i);屏幕显示( )。
A.-1
B.-32768
C.1
D.32768
11.以下能对一维数组a进行正确初始化的语句是( )。
A.int a[10]=(0,0,0,0,0);
B.int a[10]={ };
C.int a[]={0};
D.int a[10]=(10*1);
12.下列程序的输出结果是( )。 #include void fun(); void main() { int x=1; if(x= =1) { int x=2; printf(“%d”,++x); } void fun() { printf(“%d”,x++);}
A.2,1,1
B.1,2,1
C.2,2,2
D.2,2,1"
13.若二维数组a有m列,则在a[i][j]前的元素个数为( )。
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
14.若有说明:int a[][4]={0,0};则下面不正确的叙述是( )。
A.数组a中的每个元素都可得到初值0
B.二维数组a的第1维大小为1
C.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
D.只有数组元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
15.已知学生记录描述如下,下面对结构体成员"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;
16.设有定义:int a=1, *p=&a; float b=2.0; char c='A'; ,以下不合法的运算是( )。
A.p++;
B.a--;
C.b++;
D.c--;
17.若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是( )。
A.*pc[0]代表的是字符串"aaa
B.*pc[0]代表的是字符'a'
C.pc[0]代表的是字符串"aaa"
D.pc[0]代表的是字符'a'
18.以下为一维整型数组a的正确说明是( )。
A.int a(10);
B.int n=10,a[n];
C.int n; scanf("%d",&n); int a[n];
D.#define SIZE 10;int a[SIZE];
19.若a和b均为int型变量,则执行以下程序断后x的输出是( )。 x=15;y=15;printf("%d\n",x%=(y%=2));
A.0
B.1
C.6
D.12
20.以下程序段的执行结果是( )。 int x=-3; do { printf("%d\n", x++); }while(!x);
A.-3
B.-2
C.-1
D.陷入死循环
21.以下不正确的定义语句是( )。
A.double x[5]={2.0,4,0,6,0,8,0,10.0};
B.int y[5]={0,1,3,5,7,9};
C.char c1[]={'1','2','3','4','5'};
D.char c2[]={'\x10','\xa','\x8'};"
22.以下运算正确的程序段是( )。
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);"
23.下面程序段的运行结果是( )。 char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]);
A.空格
B.\0
C.e
D.f
24.定义如下变量和数组:int k; int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。for(k=0;k<3;k++) printf("%d",a[k][2-k]);
A.3 5 7
B.3 6 9
C.1 5 9
D.1 4 7
25.设c1、c2均是char类型变量,则以下不正确的函数调用是( )。
A.scanf("c1=%cc2=%c",&c1,&c2);
B.getchar( )
C.putchar(c2);
D.putchar(c1,c2)"
《高级语言程序设计基础X》在线平时作业3-00001
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 100 分)
1.若k为整型变量,则以下for循环的执行次数是( )。 for (k=2; k==0; ) printf("%d",k--);
A.无限次
B.0次
C.1次
D.2次
2.当说明一个共用体变量时系统分配给它的内存是( )。
A.共用体中第一个成员所需内存量
B.共用体中最后一个成员所需内存量
C.共用体成员中占内存量最大者所需的容量
D.共用体中各成员所需内存量的总和
3.若执行fopen函数时发生错误,则函数的返回值是( )。
A.随机值
B.1
C.NULL
D.EOF
4.以下正确的函数形式是( )。
A.double fun1(int x, int y) { z=x+y; return z; }
B.fun1(int x, y){ int z;return z; }
C.fun1(x, y) { int x, y; double z;z=x+y;return z; }
D.double fun1(int x, int y){ double z;z=x+y; return z; }"
5.若有以下程序段: …… int a[]={4,0,2,3,1},i,j,t; for(i=1;i=0 && t>a[j]) { a[j+1]=a[j];j--;} a[j+1]=t; } …… 则该程序段的功能是( )。
A.对数组a进行插入排序(升序)
B.对数组a进行插入排序(降序)
C.对数组a进行选择排序(升序)
D.对数组a进行选择排序(降序)
6.判断char型变量c1是否为大写字母的正确表达式是( )。
A.A'<=c1<='Z'
B.(c1>='A')&(c1<='Z')
C.(c1>='A')&&(c1<='Z')
D.('A'=c1)
7.设有一段程序: int *var,a; a=100;var=&a;a=*var+10; 执行上面程序段后a的值为( )。
A.120
B.110
C.100
D.90
8.若有定义:int a[2][3];,则以下对a数组元素地址的正确表示为( )。
A.*(a+1)
B.*(a[1]+2)
C.a[1]+3
D.a[0][0]
9.若有以下说明,并且0≤i<10,则( )是对数组元素的错误引用。int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a, I;
A.*(a+i)
B.a[p-a+i]
C.p+i
D.*(&a[i])
10.有两个字符数组a、b,则以下正确的输入语句是( )。
A.gets(a,b);
B.scanf("%s%s",a,b);
C.scanf("%s%s",&a,&b);
D.gets("a"); gets("b");"
11.对两个数组a和b进行如下初始化 char a[]="ABCDEF"; char b[]={'A','B','C','D','E','F'}; 则以下叙述正确的是( )。
A.a与b数组完全相同
B.a与b长度相同
C.a和b中都存放字符串
D.a数组比b数组长
12.下程序( )。 main( ) { int x1=3, x2=0, x3=0; if (x1=x2+x3) printf("* * * *"); else printf("# # # #"); }
A.输出:* * * *
B.输出:# # #
C.#存在语法错误
D.无输出结果
13.在C语言中,错误的int类型的常数是( )。
A.32768
B.0
C.37
D.0xAF
14.定义如下变量和数组:int k; int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。for(k=0;k<3;k++) printf("%d",a[k][2-k]);
A.3 5 7
B.3 6 9
C.1 5 9
D.1 4 7
15.C语言的编译系统对宏命令的处理是( )。
A.在对源程序中其它成分正式编译之前进行的
B.和C程序中的其它语句同时进行的
C.在程序连接时进行的
D.在程序运行时进行的
16.以下有关宏替换的叙述不正确的是( )。
A.宏名不具有类型
B.宏名必须用大写字母表示
C.宏替换只是字符替换
D.宏替换不占用运行时间
17.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是( )。if(x>y)z=x;x=y;y=z;
A.x=10,y=20,z=30
B.x=20,y=30,z=30
C.x=20,y=30,z=10
D.x=20,y=30,z=20"
18.一个C语言程序总是从( )。
A.主过程开始执行
B.主函数开始执行
C.子程序开始执行
D.主程序开始执行
19.若a、b、c均为int型变量,则执行以下程序段后的输出结果为( )。 b=(a=10,a+5,c=10); printf("a=%d,b=%d,c=%d\n",a,b,c); c=(a=10,b=5,a+b);printf("a=%d,b=%d,c=%d\n",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
20.若二维数组a有m列,则在a[i][j]前的元素个数为( )。
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
21.设x,y是float型变量,则不正确的赋值语句是( )。
A.++x;
B.y=int(5);
C.x*=y+1;
D.x=y=0;
22.设有定义:int a=1, *p=&a; float b=2.0; char c='A'; ,以下不合法的运算是( )。
A.p++;
B.a--;
C.b++;
D.c--;
23.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是( )。
A.float
B.int
C.long
D.double
24.已知 long i=32768;执行语句printf("%d",i);屏幕显示( )。
A.-1
B.-32768
C.1
D.32768
25.若执行下述程序时从键盘输入3 4,则输出结果是( )。
#include main( ) { int a,b,s;
scanf("%d%d",&a,&b);
s=a; if (a<b) printf("%d\n",s*s); s=b; }
A.186
B.256
C.324
D.400