行业分类
高级语言程序设计考研试卷
日期:2014-01-02 15:30  点击:215

一. 选择题(本题共10小题,每小题2分,满分40分)

  1.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是【1】.

  A) 字符A B)字符a C)字符e D)非法的常量

  2. 以下非法的赋值语句是【2】.

  A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;

  3. 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是【3】.

  A)6.500000 B)6 C) 5.500000 D) 6.000000

  4. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是【4】.

  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);

  5. 与数学式子 对应的C语言表达式是【5】.

  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)

  6. 以下选项中,与k=n++完全等价的表达式是【6】.

  A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1

  7. 有以下程序
 

   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);

  }


  程序运行后的输出结果是【7】.

  A) 1 B) 2 C) 3 D) 4

  8. C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是【8】.

  A) void B) int C) float D) double

  9. 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是【9】.

  A) p=q; B) *p=*q; C) n=*q; D) p=n;

  10.以下4个选项中,不能看作一条语句的是【10】. A){;} B)a=0,b=0,c=0; C)if(a>0); D) if(b==0) m=1;n=2;

  11.设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是【11】.

  A)scanf("%d",pa);
              B)scanf("%d",a);
              C)scanf("%d",&pa);
              D)scanf("%d",*pa);

  12. 下面的程序输出是【12】.

  typedef unio

  { long x[2]; int y[4]; char z[8];} MYTYPE;

  MYTYPE them;

  main()

  { printf("%d\n",sizeof(them));}

  A) 32 B) 16 C) 8 D) 24

  13.有以下程序

  main( )

  { int i,s=0;

  for(i=1;i<10;i+=2) s+=i+1;

  printf("%d\n",s);

  }

  程序执行后的输出结果是【13】.

  A)自然数1~9的累加和 B)自然数1~10的累加和

  C)自然数1~9中的奇数之和 D)自然数1~10中的偶数之和

  14.若程序中定义了以下函数

  double myadd(double a,double b)

  { return (a+b);}

  并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以 下选项中错误的说明是【14】.

  A)double myadd(double a,b);

  B)double myadd(double,double);

  C)double myadd(double b,double a);

  D)double myadd(double x,double y);

  15.有以下程序

  char fun(char x , char y)

  { if(x

  return y;

  }

  main( )

  { int a='9',b='8',c='7';

  printf("%c\n",fun(fun(a,b),fun(b,c)));

  }

  程序的执行结果是【15】.

  A)函数调用出错 B)8 C)9 D)7

  16.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是

  【16】.

  A)p=1; B)*q=2; C)q=p; D)*p=5;

  17.有以下程序

  void sum(int *a)

  { a[0]=a[1];}

  main( )

  { int aa[10]={1,2,3,4,5,6,7,8,9,10},i;

  for(i=2;i>=0;i--) sum(&aa[i]);

  printf("%d\n",aa[0]);

  }

  执行后的输出结果是【17】.

  A)4 B)3 C)2 D)1

  18.有以下定义

  #include

  char a[10],*b=a;

  不能给数组a输入字符串的语句是【18】.

  A)gets(a) B)gets(a[0]) C)gets(&a[0]); D)gets(b);

  19.有以下程序

  main( )

  { char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};

  printf("%d\n",strlen(p[4]));

  }

  执行后输出结果是【19】.

  A)2 B)3 C)4 D)5

  20. 设有以下语句

  typedef struct S

  { int g; char h;} T;

  则下面叙述中正确的是【20】.

  A)可用S定义结构体变量 B)可以用T定义结构体变量

  C)S是struct类型的变量 D)T是struct S类型的变量

  二. 填空题(本题共10个空,每空3分,满分30分)

  1.以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来.请填空.

  #include

  main()

  { FILE *fp;

  char str[100]; int i=0;

  if((fp=fopen("text.txt", 【 21】 ))==NULL) { printf("can't open this file.\n");exit(0);}

  printf("input astring:\n"); gest(str);

  while (str[i])

  { if(str[i]='a'&&str[i]<='z')

  str[i]=__【22】__;

  fputc(str[i],fp);

  i++;

  }

  fclose(fp);

  fp=fopen("test.txt",_【23】 );

  fgets(str,100,fp);

  printf("%s\n",str);

  fclose(fp);

  }

  2. 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空.

  #include.

  main( )

  { char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C',

  'D','E','F'};

  int c[64],d,i=0,base;

  long n;

  printf("enter a number:\n"); scanf("%ld",&n);

  printf("enter new base:\n"); scanf("%d",&base);

  do

  { c[i]=_【24】 ;

  i++; n=n/base;

  } while(n!=0);

  printf("transmite new base:\n");

  for(--i;i=0;--i)

  { d=c[i];

  printf("%c",b_【25】 );

  }

  }

  3. 有以下程序

  main()

  { int i, j;

  for(j=10;j<11;j++)

  { for(i=9;i

  if (!(j%i))break;

  if(i=j-1)printf("%d",j);

  }

  }

  输出结果是:【26】.

  4. 以下程序的输出结果是【27】.

  main()

  { int a=177;

  printf("%o\n",a);

  }

  5. 以下程序的输出结果是【28】.

  main()

  { int a=0

  a+=(a=8);

  printf("%d\n",a);

  }

  6. 以下程序输出的结果是【29】.

  main()

  { int a=5,b=4,c=3,d;

  d=(a>b>c);

  printf("%d\n",d);

  }

  7. 以下程序的输出结果是【30】.

  main()

  { char s[]="abcdef";

  s[3]=‘\0';

  printf("%s\n",s);

  }

  三. (本题共1小题,满分20分)

  将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和十位上, b数的十位和个位数依次放在c数的百位和千位上(例如,当a=45,b=12。执行程序后,c=2154)。编程实现上述功能。

  四. (本题共1小题,满分20分)

  编写程序,实现下述功能。

  从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。

  五. (本题共1小题,满分20分)

  编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

  六. (本题共1小题,满分20分)

  读取10个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。

关于网站  |  普通版  |  触屏版  |  网页版
11/24 13:37
首页 刷新 顶部