((1)~(40)每小题1分,(41)~(55)每小题2分,共60分)
下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
A) 127
B) 128
C) 255
D) 256
A) 8
B) 16
C) 32
D) 64
A) Alt键
B)Esc键
C)Shift键
D) Ctrl键
A) 暂时不能用
B) 正在执行
C) 包含下一层菜单
D) 包含对话框
A) TYPE
B) TYPE/H
C) TYPE/*
D) TYPE/?
(6) 下列选项中,能作为合法DOS文件名的是(B)。
A) ANP/A.DAT
B) ABCCOM
C) ECD.BASIC
D) XY+Z.TXT
A) 在Windows环境下,最大化的窗口是不能移动的
B) 在Windows环境下,应用程序窗口最小化后,该应用程序暂停执行
C) 在Windows环境下,只有最小化的窗口才能关闭
D) 在Windows环境下,不能关闭最大化的窗口
(8) 在Windows环境下,工具栏中的复制按钮是(C)。
A) 打印机图标
B) 剪刀标志
C) 复制标志
D) 粘贴标志
A) Ctrl+PrintScreen键
B) Alt+PrintScree键
C) Shift+PrintScreen键
D) PrintScreen键
A) 通过软件复制
B) 通过网络传播
C) 通过磁盘考贝
D) 运行游戏软件
A) C语言比其他语言高级
B) C语言可以不用编译就能被计算机识别执行
C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D) C语言出现的最晚,具有其他语言的一切优点
A) 顺序结构、选择结构、循环结构
B) if、switch、break
C) for、while、do-while
D) if、for、continue
A) main函数必须出现在所有函数之前
B) main函数可以在任何地方出现
C) main函数必须出现在所有函数之后
D) main函数必须出现在固定位置
A) C语言中既有逻辑类型也有集合类型
B) C语言中没有逻辑类型但有集合类型
C) C语言中有逻辑类型但没有集合类型
D) C语言中既没有逻辑类型也没有集合类型
A)用户标识符中可以出现在下划线和中划线(减号)
B)用户标识符中不可以出现中划线,但可以出现下划线
C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头
int m=32767,n=032767 printf("%d,%o/n",m,n);
执行后输出结果是(A)。
A) 32767,32767
B) 32767,032767
C) 32767,77777
D) 32767,077777
A) 它们的运算对象可以是任何变量和常量
B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D) 它们的运算对象可以是char型变量、int型变量和float型变量
(18) 若有以下程序段
int m=0xabc,n=0xabc; m-=n; printf("%X\n",m);
执行后输出结果是(C)。
A) 0X0
B) 0x0
C) 0
D) 0XABC
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)。
A) 10,A,10
B) 10,a,10
C) 10,a,0
D) 10,A,0
main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } }
执行后输出结果是(A)。
A) 011122
B) 012
C) 012020
D) 120
main() { int i=1,j=1,k=2; if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k); }
执行后输出结果是(C)。// short path
A) 1,1,2
B) 2,2,1
C) 2,2,2
D) 2,2,3
main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf("%d\n",d); else if((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2) }
执行后输出结果是(B)。
A) 2
B) 3
C) 4
D) 编译时有错,无结果
main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){ k=k+p[i]; i++; } printf("%d\n",k); }
执行后输出结果是(D)。
A) 58
B) 56
C) 45
D) 24
main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s +=i; }while(i<7); printf("%d\n",s); }
执行后输出结果是(A)。
A) 16
B) 12
C) 28
D) 21
main() { int i=10,j=1; printf("%d,%d\n",i--,++j); }
执行后输出结果是(B)。
A) 9,2
B) 10,2
C) 9,1
D) 10,1
main() { char a,b,c,*d; a='\'; b='\xbc'; c='\0xab'; d="\017"; print("%c%c%c\n",a,b,c,*d); }
编译时出现错误,以下叙述中正确的是(D)。
A) 程序中只有a='\';语句不正确
B) b='\xbc';语句不正确
C) d="\0127";语句不正确
D) a='\';和c='\0xab';语句都不正确
int fl(int x,int y) { return x>y?x:y; } int f2(int x,int y) { return x>y?y:x; } main() { int a=4,b=3,c=5,d,e,f; d=f1(a,b); d=f1(d,c); e=f2(a,b); e=f2(e,c); f=a+b+c-d-e; printf("%d,%d,%d\n",d,f,e); }
执行后输出结果是(C)。
A) 3,4,5
B) 5,3,4
C) 5,4,3
D) 3,5,4
void f(int x,int y) { int t; if(x<y){ t=x; x=y; y=t; } } main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf("%d,%d,%d\n",a,b,c); }
执行后输出结果是(D)。
A) 3,4,5
B) 5,3,4
C) 5,4,3
D) 4,3,5
#include<stdio.h> int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL;
则以下选项中错误的语句是(A)。
A) *q=0;
B) w=p;
C) *p=a;
D) *p=*w;
int *f(int *x,int *y) { if(*x<*y) return x; else return y; } main() { int a=7,b=8,*p,*q,*r; p=&a; q=&b; r=f(p,q); printf ("%d,%d,%d\n",*p,*q,*r); }
执行后输出结果是(B)。
A) 7,8,8
B) 7,8,7
C) 8,7,7
D) 8,7,8
main() { char *s[]={"one","two","three"},*p; p=s[1]; printf("%c,%s\n",*(p+1),s[0]); }
执行后输出结果是(C)。
A) n,two
B) t,one
C) w,one
D) o,two
main() { int x[8]={8,7,6,5,0,0},*s; s=x+3 printf("%d\n",s[2]); }
执行后输出结果是(B)。
A) 随机值
B) 0
C) 5
D) 6
A) int N=5,b[N][N];
B) int a[1][2]={{1},{3}};
C) int c[2][]={{1,2},{3,4}};
D) int d[3][2]={{1,2},{34}};
main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) { printf("%d ",m[k][i]); } }
执行后输出结果是(C)。
A) 4 5 6
B) 2 5 8
C) 3 6 9
D) 7 8 9
#define N 10 void arrin(int x[N]) { int i=0; while(i<N) scanf("%d",x+i++ ); }
在下划线处应填入的是(C)。
A) x+i
B)&x[i+1]
C)x+(i++)
D)&x[++i]
main() { char s[]="\n123\\"; printf("%d,%d\n",strlen(s),sizeof(s)); }
执行后输出结果是(C)。
A) 赋初值的字符串有错
B) 6,7
C) 5,6
D) 6,6
fun(char *s1,char *s2) { int i=0; while(s1[i]==s2[i] && s2[i]!='\0') i++; return(s1[i]=='\0' && s2[i]=='\0'); }
此函数的功能是(C)。
A) 将s2所指字符串赋给s1
B) 比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
C) 比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D) 比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
A) 全局变量的作用域一定比局部变量的作用域范围大
B)静态(static)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
typedef struct { int n; char c; double x; }STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是 A
A) STD tt[2]={{1,'A',62},{2, 'B',75}};
B) STD tt[2]={1,"A",62},2, "B",75};
C) struct tt[2]={{1,'A'},{2, 'B'}};
D) struct tt[2]={{1,"A",62.5},{2, "B",75.0}};
main() { union { unsigned int n; unsigned char c; }u1; ul.c='A'; printf("%c\n",u1.n); }
执行后输出结果是(C)。
A) 产生语法错
B) 随机值
C) A
D) 65
main() { char str[]="xyz",*ps=str; while(*ps) ps++; for(ps--;ps-str>=0;ps--) puts(ps); }
执行后的输出结果是(C)。
A) yz B) z C) z D) x xyz yz yz xy xyz xyz
main() { int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a; for(i=0;i<3;i++) if(i<2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1; printf("%d\n",a[0][1]+a[1][1]+a[1][2]); }
执行后输出结果是(A)。
A) 7
B) 6
C) 8
D) 无确定值
void fun(int *a,int i,int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; fun(a,++i,--j); } } main() { int a[]={1,2,3,4,5,6},i; fun(a,0,5) for(i=0;i<6;i++) printf("%d",a[i]); }
执行后的输出结果是(A)。
A) 6 5 4 3 2 1
B) 4 3 2 1 5 6
C) 4 5 6 1 2 3
D) 1 2 3 4 5 6
main(int arge,char *argv[]) { int n,i=0; while(argv[1][i]!='\0' { n=fun(); i++; } printf(%d\n",n*argc); } int fun() { static int s=0; s+=1; return s; }
假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行
exam 123<回车>
则运行结果为(A)。
A) 6
B)8
C)3
D)4
A.main() { int*p; fun(p);} int fun(int *p) { int s;p=&s;} B.main() { int*p; fun(&p);} int fun(int * *p) { int s;*p=&s;} C.#include<stdlib.h> main() { int*p; fun(&p);} int fun(int **p) { *p=(int*)malloc(2);} D.#include<stdlib.h> main() { int*P; fun(p);} int fun(int *p) {p=(int*)malloc(sizeof(int));}
A) typedef STP char *s;
B) typedef *char STP;
C) typedef stp *char;
D) typedef char* STP;
struct ss { char name[10]; int age; char sex; }std[3],*p=std;
下面各输入语句中错误的是(B)。
A) scanf("%d",&(*p).age);
B) scanf("%s",&std.name);
C) scanf("%c",&std[0].sex)
D) scanf("%c",&(p->sex));
A) 10101001
B) 10101000
C) 11111101
D) 01010101
A)C语言中的文本文件以ASCⅡ码形式存储数据
B)C语言中对二进制文件的访问速度比文本文件快
C)C语言中,随机读写方式不适用于文本文件
D)C语言中,顺序读写方式不适用于二进制文件
#include<stdio.h> main() { FILE *fout; char ch; fout=fopen('abc.txt','w'); ch=fgetc(stdin); while(ch!='#') { fputc(ch,fout); ch=fgetc(stdin); } fclose(fout); }
出错的原因是(A)。
A) 函数fopen调用形式错误
B) 输入文件没有关闭
C) 函数fgetc调用形式错误
D) 文件指针stdin没有定义
请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分。
(1) 用十六进制给存储器中的字节地址进行编号,若地址编号从000到FFFF,则该存诸器的容量为【64】KB。// 2^16 = 2^10*2^6
(2) 假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。若使用COPY命令,则完整的命令为【COPY A.TXT+B.TXT A.TXT】。
(3) E-mail地址由用户和域名两部分组成,这两部分的分隔符为【@】。
(4) 假设在当前盘当前目录下有一个可执行程序USER.EXE。现要执行该程序,并要求在执行过程中将显示输出的结果信息存入当前盘当前目录的文件OUT.DAT中,则完整的DOS命令为【USER >OUT.DAT】。
(5) 在DOS环境下,表示打印机的设备文件名为【PRN】 。
(6) 若有语句
int i=-19,j=i%4; printf("%d\n",j);
则输出结果是 【-3】 。
(7) 若有程序
main() { int i,j; scanf("i=%d,j=%d";&i,&j); printf("i=%d,j=%d\n",i,j); }
要求给i赋10,给j赋20,则应该从键盘输入 【i=10,j=20】 。
(8) 若有以下程序
main() { int p,a=5; if(p=a!=0) printf("%d\n",p); else printf("%d\n",p+2); }
执行后输出结果是 【1】 。
(9) 若有以下程序
main() { int a=4,b=3,c=5,t=0; if(a<b) t=a,a=b,b=t; if(a<c) t=a,a=c,c=t; printf("%d %d %d\n",a,b,c); }
执行后输出结果是 【5 3 4】 。
(10) 若有以下程序
main() { int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(a[i][j]<0)continue; if(a[i][j]==0)break; s+=a[i][j]; } } printf("%d\n",s); }
执行后输出的结果是 【58】 。
(11) 若有以下程序
main() { char a; a='H'-'A'+'0'; print("%c\n",a); }
执行后的输出结果是 【7】 。
(12) 若有以下程序
int f(int x,int y) { return (y-x)*x; } main() { int a=3,b=4,c=5,d; d=f(f(3,4),f(3,5)); printf("%d\n",d); }
执行后输出的结果是【9】。
(13) 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
其构成规律是:
第0列元素和主对角线无素均为1
其余元素为其左上方和正上方元素之和
数据的个数每行递增1
请将程序补充完整。
#defint N 6 void YangHui(int *[N][N]) { int i,j; x[0][0]=1 for(i=1;i { x[i][0]= 【13】 =1; for(j=1;j x[i][j]= 【14】 ; } x[i][i]和x[i-1][j-1]+x[i-1][j] #include<stdio.h> #define N 6 void YangHui(int x[N][N]) { int i,j; x[0][0]=1; for(i=1;i<N;i++) { x[i][0]=x[i][i]=1;/*第一空*/ for(j=1;j<i;j++) if(i!=j)/*第二空*/ x[i][j]=[i-1][j-1]+x[i-1][j];/*第三空*/ } }
void dele(char *s) { int n=0,i; for(i=0,s[i];i++) if(【!(s[i]>='0'&&s[i]<='9')】) s[n++]=s[i]; s[n]=【'\0'】; }
(15) 设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
main() { int findbig(int,int,int); int (*f)(),x,yz,z,big; f=【findbig】; scanf("%d%d%d",&x,&y,&z); big=(*f)(x,y,z); printf("bing=%d\n",big); }
(16) 以下程序的输出结果是【16】 。
#defint MCRA(m) 2*m #define MCRB(n,m) 2*MCRA(n)+m main() { int i=2,j=3; printf("%d\n",MCRB(j,MCRA(i))); }
(17) 设有以下定义
struct ss { int info; struct ss *link; }x,y,z;
且已建立如下图所示链表结构:
□□ →□□→□□ x y z
请写出删除点y的赋值语句【x.link=y.link;】 。
(18) 已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为"读"而打开,由文件指针fr指向该文件,则程序的输出结果是 【Hell】 。
#include<stdio.h> main() { FILE *fr; char str[40]; //…… fgets(str,5,fr); printf("%s\n",str); fclose(fr); }
本页共813段,25391个字符,32065 Byte(字节)