c语言考试,求答案,急!!急!!

}
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.设有-11,-9,0,3,5,6,8,12,15,21十个数,请编程从键盘上输入这十个数,并计算能够被3整除的数的平均值。
37.编一个求素数的函数,在主函数中将100到200之间的所求的所有素数以ASCII码的形式写到c盘根目录下ss.dat文件中。

一、选择题((1)—(40)每题1分,(41)—(50)每题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
  
(1) 在32位计算机中,一个字长所占的字节数为( )。
A) 1
B) 2
C) 4
D) 8
  
(2) 与十进制数511等值的十六进制数为( )。
A) 1FF
B) 2FF
C) 1FE
D) 2FE
  
(3) 能将高级语言编写的源程序转换成目标程序的是( )。
A) 编程程序
B) 编译程序
C) 解释程序
D) 链接程序
  
(4) 在计算机系统中,存储一个汉字的国标码所需要的字节数为( )。
A) 1
B) 2
C) 3
D) 4
  
(5) 下列带有通配符的文件名中,能表示文件ABC.TXT的是( )。
A) *BC.?
B) A?.*
C) ?BC.*
D) ?.?
  
(6) 在多媒体计算机系统中,不能用以存储多媒体信息的是( )。
A) 光缆
B) 软盘
C) 硬盘
D) 光盘
  
(7) DOS命令“COPY/?”的功能是( )。
A) 将当前盘当前目录中的所有文件复制到当前盘的根目录下
B) 将当前盘当前目录中所有以单个字符命名的文件复制到当前盘的根目录下
C) 以提示方式复制文件
D) 显示COPY命令的帮助信息
  
(8) 在Windows环境下,若要将当前活动窗口存入剪贴板,则可以按( )。
A) Ctrl+PrintScreen键
B) Ctrl+PrintScreen键
C) Shift+PrintScreen键
D) PrintScreen键
  
(9) 在Windows环境下,单击当前应用程序窗口中的“关闭”按钮,其功能是( )。
A) 将当前应用程序转为后台运行
B) 退出Windows后再关机
C) 退出Windows后重新启动计算机
D) 终止当前应用程序的运行
  
(10) 在Windows环境中,粘贴按钮是( )。
A) ctrl+A
B) ctrl+C
C) ctrl+X
D) ctrl+V
  
(11) 以下叙述中正确的是( )。
A) 构成C程序的基本单位是函数
B) 可以在一个函数中定义另一个函数
C) main()函数必须放在其它函数之前
D) 所有被调用的函数一定要在调用之前进行定义
  
(12) 以下选项中合法的实型常数是( )。
A) 5E2.0
B) E-3
C) .2E0
D) 1.3E
  
(13) 以下选项中合法的用户标识符是( )。
A) long
B) _2Test
C) 3Dmax
D) A.dat
  
(14) 已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是( )。
A) 字符A
B)字符a
C)字符e
D)非法的常量
  
(15) 以下非法的赋值语句是( )。
A) n=(i=2,++i);
B)j++;
C) ++(i+1);
D)x=j>0;
  
(16) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是( )。
A)6.500000
B)6
C) 5.500000
D) 6.000000
  
(17) 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是( )。
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);
  
(18) 与数学式子 对应的C语言表达式是( )。
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)
  
(19) 设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是( )。
A)printf(“x=%d\n”,x);
B) printf(“x=%1d\n”,x);
C)printf(“x=%8dL\n”,x);
D)printf(“x=%LD\n”,x);
  
(20) 若有以下程序:
  main()
  { int k=2,i=2,m;
  m=(k+=i*=k);printf(“%d,%d\n”,m,i);
  }
  执行后的输出结果是( )。
A) 8,6
B) 8,3
C) 6,4
D) 7,4
  
(21) 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是( )。
A) 6
B) 0
C) 2
D) 1
  
(22) 有一函数, ,以下程序段中不能根据x值正确计算出y值的是( )。
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;
  
(23) 以下选项中,与k=n++完全等价的表达式是( )。
A) k=n,n=n+1
B) n=n+1,k=n
C) k=++n
D) k+=n+1
  
(24) 以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
  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) sum=0.0;
B) sum+=score;
C) ave=sun/4.0;
D) printf(“NO%d:%f\n”,n,ave);
  
(25) 有以下程序段
  int n=0,p;
  do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);
  此处do—while循环的结束条件是( )。
A) P的值不等于12345并且n的值小于3
B) P的值等于12345并且n的值大于等于3
C) P的值不等于12345或者n的值小于3
D) P的值等于12345或者n的值大于等于3
  
(26) 有以下程序
  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) 1
B) 2
C) 3
D) 4
  
(27) C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( )。
A) void
B) int
C) float
D) double
  
(28) 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是( )。
A) p=q;
B) *p=*q;
C) n=*q;
D) p=n;
  
(29) 有以下程序
  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));
  }
  程序运行后的输出结果是( )。
A) 编译出错
B) 9
C) 21
D) 9.0
  
(30) 有以下程序
  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);
  }
  程序运行后的输出结果是( )。
A)B,a,B,a
B) a,B,a,B
C) A,b,A,b
D) b,B,A,b
  
(31) 以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序
  void sort(int a[],int n)
{ int i,j,t;
for(i=0;i
for(j=i+1,j
if(a[i]
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=o;i<10;i++) print(“%d,”,aa[i]);
printf(‘\n”);
}
  程序运行后的输出结果是( )。
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
  
(32) 有以下程序
  int f(int n)
  { if (n==1) return 1;
  else return f(n-1)+1;
  }
  main()
  { int i,j=0;
  for(i=i;i<3;i++) j+=f(i);
  printf(“%d\n”,j);
  }
  程序运行后的输出结果是( )。
A) 4
B) 3
C) 2
D) 1
  
(33) 有以下程序
  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);
  }
  程序运行后的输出结果是( )。
A)9,9
B)8,9
C)1,8
D)9,8
  
(34) 以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。
  void reverse(int a[ ],int n)
  { int i,t;
  for(i=0;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);
  }
  程序运行后的输出结果是( )。
A) 22
B) 10
C) 34
D) 30
  
(35) 有以下程序
  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);
  }
  程序运行后的输出结果是( )。
A) 11
B) 19
C) 13
D) 20
  
(36) 有以下程序
  #include
  main()
  { char *p=“abcde\Ofghjik\0”;
  printf(“%d\n”,strlen(p));
  }
  程序运行后的输出结果是( )。
A) 12
B) 15
C) 6
D) 5
  
(37) 程序中头文件typel.h 的内容是:
  #define N 5
  #define M1 N*3
  程序如下:
  #define “type1.h”
  #define M2 N*2
  main()
  { int i;
  i=M1+M2; printf(“%d\n”,i);
  }
  程序编译后运行的输出结果是:( )。
A) 10
B) 20
C) 25
D) 30
  
(38) 有以下程序
  #include
  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) 20 30
B) 20 50
C) 30 50
D) 30 20
  
(39) 以下叙述中错误的是( )。
A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B) 在程序结束时,应当用fclose函数关闭已打开的文件
C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D) 不可以用FILE定义指向二进制文件的文件指针

(40) 有以下程序
  #include
  main(int argc,char *argv[])
  { int i,len=0;
  for(i=1;i  printf(“%d\n”,len);
  }
  程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是:
  ex1 abcd efg 10<回车>
  则运行的结果是:( )。
A) 22
B) 17
C) 12
D) 9
  
(41) 有以下程序
  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);
  }
  程序运行后的输出结果是( )。
A) -4
B) 1
C) 4
D) 8
  
(42) 有以下程序
  int a=3;
  main()
  { int s=0;
  { int a=5; s+=a++; }
  s+=a++;printf(“%d\n”,s);
  }
  程序运行后的输出结果是( )。
A) 8
B) 10
C) 7
D) 11
  
(43) 有以下程序
  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);
  }
  程序运行后的输出结果是( )。
A) ABCDDEFEDBD
B) abcDDfefDbD
C) abcAAfefAbA
D) Abcddfefdbd
  
(44) 有以下程序
  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);
  }
  程序运行后的输出结果是( )。
A) 260.00
B) 270.00
C) 280.00
D) 285.00
  
(45) 设有如下定义:
  struck sk
  { int a;
  float b;
  }data;
  int *p;
  若要使P指向data中的a域,正确的赋值语句是( )。
A) p=&a;
B) p=data.a;
C) p=&data.a;
D) *p=data.a;
  
(46) 有以下程序
  #include
  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);
  }
  程序运行后的输出结果是( )。
A) 10
B) 20
C) 30
D) 40
  
(47) 若有以下说明和定义
  typedef int *INTEGER;
  INTEGER p,*q;
  以下叙述正确的是( )。
A) P是int型变量
B) p是基类型为int的指针变量
C) q是基类型为int的指针变量
D) 程序中可用INTEGER代替int类型名
  
(48) 有以下程序
  main()
  { unsigned char a,b,c;
  a=0x3; b=a|0x8; c=b<<1;
  printf(“%d%d\n”,b,c);
  }
  程序运行后的输出结果是( )。
A) –11 12
B) –6 –13
C) 12 24
D) 11 22
  
(49) 有以下程序
  #include
  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) def def
B) abc def
C) abc d
D) d d
  
(50) 以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。
  #include
  void f(char p[][10],int n)
  { char t[20]; int i,j;
  for(i=0;i  for(j=i+1;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]));
  }
  程序运行后的输出结果是( )。
A) 6
B) 4
C) 5
D) 3
  
二、填空题(每空2分,共40分)
请将答案分别写在答题卡中序号为【1】至【20】的横线上,答在试卷上不得分。
  
1、计算机软件分为系统软件和应用软件,操作系统属于 [1] 。
  
2、在DOS环境下,代表键盘和显示器的设备文件名为 [2] 。
  
3、支持Internet基本服务的协议是 [3] 。
  
4、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为 [4] 。
  
5、某微型机的运算速度为2MIPS,则该微型机每秒执行 [5] 条指令。
  
6、设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。
  scanf(“%d, ” [6] );
  printf(“%d\n”, [7] 。);
  
7、以下程序运行后的输出结果是 [8] 。
   main()
  { int x=10,y=20,t=0;
  if(x==y)t=x;x=y;y=t;
  printf(“%d,%d \n”,x,y);
  }
  
8、以下程序运行后的输出结果是 [9] 。
  main()
  { int x=15;
  while(x>10 && x<50)
  { x++;
  if(x/3){x++;break;}
  else continue;
  }
  printf(“%d\n”,x);
  }
  

9、有以下程序:
  #include
  main()
  { char c;
  while((c=getchar( ))!=’?’) putchar(--c);
  }
  程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为 [10] 。
  
10、以下程序运行后的输出结果是 [11] 。
  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 [12] ;
  s=s+fac;
  }
  return s;
  }
  

12 fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。
  #include
  #define N 100
  int fun(int(*a)[N])
  { int row,col,max,min;
  for(row=0;row  { for(max=a[row][0],col=1;col  if( [13] )max=a[row][col];
   if( row==0)min=max;
   else if( [14] )min=max;
   }
  return min;
  }
  
13、函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。
  #include
  int sstrcmp(char *s,char *t)
  { while(*s&&*t&& *s== [15] )
  { s++;t++;}
  return [16] ;
  }
  
14、下面程序的运行结果是 [17] 。
  #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、下面程序的运行结果是: [18] 。
  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、下面程序的运行结果是: [19] 。
  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==【19】)
{s++;t++; }
return 【20】;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-04-01
哥们儿,整张试卷都发上来了?你都学啥了?
问问题的时候,不要只是按种类分开,要把题目都分开,一个屏幕显示不完的题目,或者回答内容很多的题目在一起,没人愿意答的
第2个回答  2008-04-01
如果你学了,应该会!
很简单
第3个回答  2008-04-01
呵,不好意思,不会
第4个回答  2008-04-01
要求多啊.又没分?

C语言试题啊,求大神帮忙答案啊!
d、register 这个题目容易,没有指定当然是自动指定的了。本题答案为a。另外一个小知识,我们平常看到的int a,b,c;实际上省略了auto,全部应该是 auto int a,b,c;题号:7 以下程序的运行结果是( )void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub (10,5,&a)...

C语言程序设计试题 求标准答案 都是多选
1、答案:A (单引号括起来的都是字符,而且一对单引号最多对应一个字符,\\反斜杠是转义字符的开始,\\72是ASCII码对应的字母H。也就是把H这个字母存到了变量char a中。就一个字符H。)2、ACDE 解析:int a=3,b=4,c=5;,A、a>b B、a<=b C、(a||b)>c D、a<=(b||c)E、!

C语言基础题,求解!要求详细解题步骤,
答案是c 用单引号的是字符,用双引号的是字符串 A中单引号内有两个字符,但字符型变量只能存放一个字符。B,D是字符串 C正确是按照ASCII存储的

问一道计算机等级考试(C语言)问题,求详解
答案是c正确 A是错误的,因为虽然是“abcde”5,但是还有字符串结束标识‘\\0’,所以是6个,正确应该是char s[6] = "abcde";B 错误的,因为定义了一个指针变量s的话,这个指针s指向的内存不明确,也就是野指针,操作野指针很危险,所以错误 C,正确,标识定义了一个指针s,s指向了字符串“abcd...

C语言题目,求详细解答。
答案是:x=5,y=4,a=1;过程:当x=3,y=6时 执行while(x(3)++!=(y=5))a+=1; (a=1);if(y<x) break; (因为y=5,x=4,所以不成立,因此不执行)注意:这时x因为(x++)所以,x=4;继续执行while(x++(4)!=(y=4))(因为上面y通过想减已经为5了,再减一,等4,与x...

C语言题目,急求解,求助
include<stdio.h> int main(){ int m, n;scanf("%d%d", &m, &n);printf("%d %d\\n", sizeof(int), sizeof(char));printf("%c %c\\n", m, n);return 0;}

求c语言题答案,写好题号谢谢
A.a[0] B. a[3.5] C. a[2-1] D. a[4]4. 若有说明char s1[80],s2[80]; 则正确的输出形式是( A、D )。A.puts(s1),puts(s2); B.puts(s1,s2); C.putchar(s1,s2); D.printf(“%s %s”,s1,s2);5.若有说明int a[3][4];则对a数组元素的正...

c语言考试,求答案,急!!急!!
c语言考试,求答案,急!!急!! }五、程序设计题(本大题共2小题,每小题12分,共24分)36.设有-11,-9,0,3,5,6,8,12,15,21十个数,请编程从键盘上输入这十个数,并计算能够被3整除的数的平均值。37.编一个求素数的函... }五、程序设计题(本大题共2小题,每小题12分,共24分)36.设有-11,-9,...

c语言的题,求大神解答
选择的答案都是对的 题1:i++先进行表达式运算,最后再自增;++i先自增,再进行表达式运算,从结果上看最终都会导致i+1,所以结束后i,j,k都分别加1了。题2:C的写法就是强制类型转换,a1+a2的结果本来还是int,但是被强制转换成了char。A、B是普通的加法运算,D是可以说是赋值运算 ...

c语言编程题求快速解答!!
,解得:m=1 n=1 ,故A20α=620 α1 +120 α2 = 620+3 620-2 .要使AB=0,则B的列向量必为Ax=0的解,将A进行初等变化为{1 -2 3;-0 0 0 ;0 0 0},可得基础解系(2 1 0)T,(-3 0 1)T,所以B={2 -3 0;1 0 0 ;0 1 0}满足条件 用冒泡法求,就可以了 ...

相似回答