((1)—(40)每题1分,(41)—(50)每题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
A) 1
B) 2
C) 4
D) 8
A) 1FF // 1*16^2+15*16^1+15
B) 2FF
C) 1FE
D) 2FE
A) 编程程序
B) 编译程序
C) 解释程序
D) 链接程序
A) 1
B) 2
C) 3
D) 4
A) *BC.”
B) A?.*
C) ?BC.*
D) ?.”
A) 光缆
B) 软盘
C) 硬盘
D) 光盘
A) 将当前盘当前目录中的所有文件复制到当前盘的根目录下
B) 将当前盘当前目录中所有以单个字符命名的文件复制到当前盘的根目录下
C) 以提示方式复制文件
D) 显示COPY命令的帮助信息
A) Ctrl+PrintScreen键
B) Ctrl+PrintScreen键
C) Shift+PrintScreen键
D) PrintScreen键
A) 将当前应用程序转为后台运行
B) 退出Windows后再关机
C) 退出Windows后重新启动计算机
D) 终止当前应用程序的运行
A) ctrl+A
B) ctrl+C
C) ctrl+X
D) ctrl+V
A) 构成C程序的基本单位是函数
B) 可以在一个函数中定义另一个函数
C) main()函数必须放在其它函数之前
D) 所有被调用的函数一定要在调用之前进行定义
A) 5E2.0
B) E-3
C) .2E0
D) 1.3E
A) long
B) _2Test
C) 3Dmax
D) A.dat
A) 字符A
B)字符a
C)字符e
D)非法的常量
A) n=(i=2,++i);
B) j++;
C) ++(i+1);
D) x=j>0;
A)6.500000
B)6
C) 5.500000
D) 6.000000
A) scanf(“%2d%2d%2d”,&i,&j,&k);
B) scanf(“%d %d %d”,&i,&j,&k);
C) scanf(“%d,%d,%d”,&i,&j,&k);
D) scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
A) 3*x^n(2*x-1)
B) 3*x**n(2*x-1)
C) 3*pow(x,n)*(1/(2*x-1))
D) 3*pow(n,x)/(2*x-1)
A)printf(“x=%d\n”,x);
B) printf(“x=%1d\n”,x);
C)printf(“x=%8dL\n”,x);
D)printf(“x=%LD\n”,x);
main() { int k=2,i=2,m; m=(k+=i*=k); printf(“%d,%d\n”,m,i); }
执行后的输出结果是(C)。
A) 8,6
B) 8,3
C) 6,4
D) 7,4
A) 6
B) 0
C) 2
D) 1
A) if(x>0) y=1; B) y=0; else if(x==0) y=0; if(x>0) y=1; else y=-1; else if(x<0) y=-1; C)y=0; D)if(x>=0) if(x>=0); if(x>0) y=1; if(x>0) y=1 ; else y=0; else y=-1; else y=-1;
A) k=n,n=n+1
B) n=n+1,k=n
C) k=++n
D) k+=n+1
main() { int n,k; float score ,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf(“%f”,&score); sum+=score; } ave=sum/4.0; printf(“NO%d:%f\n”,n,ave); } }
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是(A)。
A) sum=0.0;
B) sum+=score;
C) ave=sun/4.0;
D) printf(“NO%d:%f\n”,n,ave);
int n=0,p; do{ scanf(“%d”,&p); n++; }while(p!=12345 &&n<3);
此处do—while循环的结束条件是(D)。
A) p的值不等于12345并且n的值小于3
B) p的值等于12345并且n的值大于等于3
C) p的值不等于12345或者n的值小于3
D) p的值等于12345或者n的值大于等于3
main() { int a=15,b=21,m=0; switch(a%3) { case 0:m++;break; case 1:m++; switch(b%2) { default:m++; case 0:m++;break; } } printf(“%d\n”,m); }
程序运行后的输出结果是(A)。
A) 1
B) 2
C) 3
D) 4
A) void
B) int
C) float
D) double
A) p=q;
B) *p=*q;
C) n=*q;
D) p=n;
float fun(int x,int y) { return(x+y); } main() { int a=2,b=5,c=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); }
程序运行后的输出结果是(B)。
A) 编译出错
B) 9
C) 21
D) 9.0
void fun(char *c,int d) { *c=*c+1;d=d+1; printf(“%c,%c,”,*c,d); } main() { char a=’A’,b=’a’; fun(&b,a); printf(“%c,%c\n”,a,b); }
程序运行后的输出结果是(D)。
A)B,a,B,a
B) a,B,a,B
C) A,b,A,b
D) b,B,A,b
#include<stdio.h> void sort(int a[],int n) { int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5); for(i=0;i<10;i++) printf("%d,",aa[i]); printf("\n"); getchar(); }
程序运行后的输出结果是(C)。
A)1,2,3,4,5,6,7,8,9,10
B) 10,9,8,7,6,5,4,3,2,1,
C) 1,2,3,8,7.6.5.4.9,10
D) 1,2,10,9,8,7,6,5,4,3
int f(int n) { if(n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1;i<3;i++) j+=f(i); printf(“%d\n”,j); }
程序运行后的输出结果是(B)。
A) 4
B) 3
C) 2
D) 1
main() { char a[]={'a','b','c','d','e','f','g','h','\0'}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d\b"i,j); }
程序运行后的输出结果是(D)。
A)9,9
B)8,9
C)1,8
D)9,8
#include<stdio.h> void reverse(int a[ ],int n) { int i,t; for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } } main() { int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8); for(i=6;i<10;i++) s+=b[i]; printf("%d\n",s); getchar(); }
程序运行后的输出结果是(A)。
A) 22
B) 10
C) 34
D) 30
main() { int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0 for(i=0;i<4;i++) s+=aa[i][1]; printf(“%d\n”,s); }
程序运行后的输出结果是(B)。
A) 11
B) 19
C) 13
D) 20
#include<stdio.h> main() { char *p=“abcde\Ofghjik\0”; printf(“%d\n”,strlen(p)); }
程序运行后的输出结果是(D)。
A) 12
B) 15
C) 6
D) 5
#define N 5 #define M1 N*3
程序如下:
#define “type1.h” #define M2 N*2 main() { int i; i=M1+M2; printf(“%d\n”,i); }
程序编译后运行的输出结果是:(C)。
A) 10
B) 20
C) 25
D) 30
#include<stdio.h> main() { FILE *fp; int i=20,j=30,k,n; fp=fopen("d1.dat","w"); fprintf(fp,"%d\n",i); fprintf(fp,"%d\n"j); fclose(fp); fp=fopen("d1.dat", "r"); fp=fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n); fclose(fp); }
程序运行后的输出结果是(A)。
A) 20 30
B) 20 50
C) 30 50
D) 30 20
A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B) 在程序结束时,应当用fclose函数关闭已打开的文件
C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D) 不可以用FILE定义指向二进制文件的文件指针
#include<stdio.h> main(int argc,char *argv[]) { int i,len=0; for(i=1;i<argc;i++) len+=strlen(argv[i]) printf("%d\n",len); }
程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是:
ex1 abcd efg 10<回车>
则运行的结果是:(D)。
A) 22
B) 17
C) 12
D) 9
int fa(int x) { return x*x; } int fb(int x) { return x*x*x; } int f(int (*f1)(),int (*f2)(),int x) { return f2(x)-f1(x); } main() { int i; i=f(fa,fb,2); printf(“%d\n”,i); }
程序运行后的输出结果是(C)。
A) -4
B) 1
C) 4
D) 8
int a=3; main() { int s=0; { int a=5; s+=a++; } s+=a++; printf(“%d\n”,s); }
程序运行后的输出结果是(A)。
A) 8
B) 10
C) 7
D) 11
void ss(char *s,char t) { while(*s) { if(*s==t) *s=t-‘a’+’A’; s++; } } main() { char str1[100]=“abcddfefdbd”,c=’d’; ss(str1,c); printf(“%s\n”,str1); }
程序运行后的输出结果是(B)。
A) ABCDDEFEDBD
B) abcDDfefDbD
C) abcAAfefAbA
D) Abcddfefdbd
struct STU { char num[10]; float score[3]; }; main() { struct stu s[3]={ {“20021”,90,95,85}, {“20022”,95,80,75}, {“20023”,100,95,90}},*p=s; int i; float sum=0; for(i=0;i<3,i++) sum=sum+p->score[i]; printf(“%6.2f\n”,sum); }
程序运行后的输出结果是(B)。
A) 260.00
B) 270.00
C) 280.00
D) 285.00
struck sk { int a; float b; }data; int *p;
若要使P指向data中的a域,正确的赋值语句是(C)。
A) p=&a;
B) p=data.a;
C) p=&data.a;
D) *p=data.a;
#include<stdio.h> struct NODE { int num; struct NODE *next; }; main() { struct NODE *p,*Q,*R; p=(struct NODE*)malloc(sizeof(struct NODE)); q=(struct NODE*)malloc(sizeof(struct NODE)); r=(struct NODE*)malloc(sizeof(struct NODE)); p->num=10; q->num=20; r->num=30; p->next=q;q->next=r; printf(“%d\n”,p->num+q->next->num); }
程序运行后的输出结果是(D)。
A) 10
B) 20
C) 30
D) 40
typedef int *INTEGER; INTEGER p,*q;
以下叙述正确的是(B)。
A) P是int型变量
B) p是基类型为int的指针变量
C) q是基类型为int的指针变量
D) 程序中可用INTEGER代替int类型名
main() { unsigned char a,b,c; a=0x3; b=a|0x8; c=b<<1; printf(“%d%d\n”,b,c); }
程序运行后的输出结果是(D)。
A) –11 12
B) –6 –13
C) 12 24
D) 11 22
#include<stdio.h> main() { char *p,*q; p=(char*)malloc(sizeof(char)*20); q=p; scanf(“%s%s”,p,q); printf(“%s%s\n”,p,q); }
若从键盘输入:abc def<回车>,则输出结果是:(A)。
A) def def
B) abc def
C) abc d
D) d d
#include<stdio.h> #include <string.h> void f(char p[][10],int n) { char t[20]; int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j])<0) { strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[j],t); } } main() { char p[][10]={"abc","aabdfg","abbd","dcdbe","cd"};int i; f(p,5); printf("%d\n",strlen(p[0])); }
程序运行后的输出结果是(C)。
A) 6
B) 4
C) 5
D) 3
请将答案分别写在答题卡中序号为【1】至【20】的横线上,答在试卷上不得分。
1、计算机软件分为系统软件和应用软件,操作系统属于 [系统软件] 。
2、在DOS环境下,代表键盘和显示器的设备文件名为 [con] 。
3、支持Internet基本服务的协议是 [tcp/ip] 。
4、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为 [exit] 。
5、某微型机的运算速度为2MIPS,则该微型机每秒执行 [200万] 条指令。
6、设有定义:
int n,*k=&n;
以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。
scanf("%d, " [k] ); printf("%d\n", [*k] );
7、以下程序运行后的输出结果是 [20,0] 。
main() { int x=10,y=20,t=0; if(x==y) t=x;x=y;y=t; printf(“%d,%d \n”,x,y); }
8、以下程序运行后的输出结果是 [17] 。
main() { int x=15; while(x>10 && x<50) { x++; if(x/3){x++;break;} else continue; } printf(“%d\n”,x); }
9、有以下程序:
#include<stdio.h> main() { char c; while((c=getchar())!=’?’) putchar(--c); }
程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为 [X] 。
10、以下程序运行后的输出结果是 [3,2,2,3] 。
void fun(int x,int y) { x=x+y;y=x-y;x=x-y; printf(“%d,%d,”,x,y); } main() { int x=2,y=3; fun(x,y); printf(“%d,%d\n”,x,y); }
11、以下函数的功能是计算s=1+ + +……+ ,请填空。
double fun(int n) { double s=0.0,fac=1.0; int i; for(i=1,i<=n;i++) { fac=fac [/i] ; s=s+fac; } return s; }
12 fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。
#include<stdio.h> #define N 3 int fun(int(*a)[N]) { int row,col,max,min; for(row=0;row<N;row++){ for(max=a[row][0],col=1;col<N;col++) if(max < a[row][col]) max=a[row][col]; if( row==0) min=max; else if(min >max) min=max; } return min; } main() { int arr[N][N]={{9,8,7},{4,5,6},{300,555,333}}; int m = fun(arr); printf("%d\n",m); getchar(); }
13、函数sstrcmp()的功能是对两个字符串进行比较。
当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。
#include<string.h> int sstrcmp(char *s,char *t) { while(*s&&*t&& *s== [*t] ) { s++;t++; } return [*s==*t?0:(*s>*t?1:-1)];//*s-*t }
14、下面程序的运行结果是 [1000 10] 。
#define N 10 #define s(x) x*x #define f(x) (x*x) main() { int i1,i2; i1=1000/s(N); i2=1000/f(N); printf(“%d %d\n”,i1,i2); }
15、下面程序的运行结果是: [3 5] 。
void swap(int *a,int *b) { int *t; t=a; a=b; b=t; } main() { int x=3,y=5,*p=&x,*q=&y; swap(p,q); printf(“%d %d\n”,*p,*q); }
16、下面程序的运行结果是: [80] 。
typedef union student { char name[10]; long sno; char sex; float score[4]; }STU; main() { STU a[5]; printf(“%d\n”,sizeof(a)); }
(17) 函数sstrcmp()的功能是对两个字符串进行比较。当s 所指字符串和t所指字符相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。
#include <stdio.h> int sstrcmp(char *s,char *t) { while(*s&&*t&&*s==【*t】) {s++;t++; } return 【*s=*t】; }
本页共842段,25856个字符,31933 Byte(字节)