C语言 百分网手机站

最新C语言考题带答案(2)

时间:2020-11-07 10:59:20 C语言 我要投稿

2017年最新C语言考题带答案

  A.3839

  B.3938

  C.380039

  D.390038

  (42)有以下程序

  #include

  main()

  { int a,b,c=246;

  a=c/100%9;

  b=(-1)&&(-1);

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

  B.;

  }

  输出结果是

  A.2,1

  B.3,2

  C.4,3

  D.2,-1

  (43)设有如下定义:

  int (*ptr)*();

  则以下叙述中正确的是

  A.ptr是指向一维组数的指针变量

  B.ptr是指向int型数据的指针变量

  C.ptr是指向函数的指针,该函数返回一个int型数据

  D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

  (44)有以下程序

  #include

  struct stu

  { int num;

  char name[10];

  int age;

  };

  void fun(struct stu *p)

  { printf("%s\n",(*p).name); }

  main()

  {

  struct stu students[3]={ {9801,"Zhang",20},

  {9802,"Wang",19},

  {9803,"Zhao",18} };

  fun(students+2);

  }

  输出结果是

  A.Zhang

  B.Zhao

  C.Wang

  D.18(45)设有以下说明和定义:

  typedef union

  { long i; int k[5]; char c; }DATE;

  struct date

  { int cat; DATE cow; double dog; } too;

  DATE max;

  则下列语句的执行结果是

  printf ("%d",sizeof (struct date )+sizeof(max));

  A.26

  B.30

  C.18

  D.8

  (46)有以下程序

  main()

  { char a[]="programming", b[]="language";

  char *p1,*p2;

  int i;

  p1=a; p2=b;

  for(i=0;i<7;i++)

  if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));

  }

  输出结果是

  A.gm

  B.rg

  C.or

  D.ga

  (47)有以下程序

  viod fun (int a,int b,int

  C.

  { a=456; b=567; c=678;}

  main()

  { int x=10, y=20,z=30;

  fun (x,y,z);

  printf("%d,/%d\n",c,

  D.;

  }

  输出结果是

  A.30,20,10

  B.10,20,30

  C.456,567,678

  D.678,567,456

  (48)有以下程序

  int fun(int x,int y,int *cp,int *dp)

  { *cp=x+y; *dp=x-y; }

  main()

  { int a, b, c, d;

  a=30; b=50;

  fun(a,b,&c,&

  D.;

  printf("%d,%d\n", c,

  D.;

  }

  输出结果是

  A.50,30

  B.30,J50

  C.80,-20

  D.80,20

  (49)有以下程序

  main()

  { int i, j;

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

  { for(i=9;i=j-1)printf("%d",j);

  }

  }

  输出结果是

  A.11

  B.10

  C.9

  D.10 11

  (50)有以下程序

  #include "atdio.h"

  int abc(int u,intv);

  main ()

  { int a=24,b=16,c;

  c=abc(a,

  B.;

  printf('%d\n",

  C.;

  }

  nt abc(int u,int v)

  { int w;

  while(v)

  { w=u%v; u=v; v=w }

  return u;

  }

  输出结果是

  A.6

  B.7

  C.8

  D.9 二、填空题(每空2分,共40分)

  请将每空的正确答案写在答题卡【1】-【20】序号的横线上,答在试卷上不得分.

  (1) 自动批自理文件名为【1】 。

  (2) DOS命令分为内部命令与外部命令,COMP命令属于【2】命令。

  (3) 设当前为C盘,现要用一条DOS命令在打印机上输出A盘当前目录下所有扩展名为.DAT的文件内容。这一条DOS命令应为【3】 。

  (4) 要将当前盘当前目录下的子目录XYZ中所有扩展名为.BAK 的文件名改成扩展名为.FOR,应使用的DOS命令为【4】 。

  (5) 设DOS外部命令文件所在的路径均已用PATH命令打通。现要将当前盘当前目录下的文件WST.TXT设置为只读属性,应使用的DOS命令为【5】 。

  (6) 设x和y均为int型变量,且x=1,y=2,则以下表达式的值为【6】 。

  1.0+x/y

  (7) 设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【7】 。

  for(i=0,j=10;i<=j;i++,j--)

  k=i+j;

  (8) 设有以下定义的语句:

  int a[3][2]={10,20,30,40,50,60}, (*p)[2];

  p=a;

  则 *(*(p+2)+1)值为【8】 。

  (9) 以下程序的输出结果是【9】 。

  #include

  int fun(int x,int y)

  { static int m=0,i=2;

  i+=m+1;

  m=i+x+y;

  return m

  }

  main()

  { int j=4,m=1,k;

  k=fun(j,m); printf("%d,",k);

  k=fun(j,m); printf("%d\n",k);

  }

  (10) 函数fun的功能是:使一个字符串按逆序存放,请填空

  void fun (char str[])

  { char m; int i,j;

  for(i=0,j=strlen(str);i<【10】;i++,j--)

  { m=str[i];

  str[i]=【11】;

  str[j-1]=m;

  }

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

  }

  (11) 以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。

  #include"ctype.h"

  #include"stdio.h"

  main()

  { char str[81],*sptr;

  int i;

  for(i=0;i<80;i++)

  { str[i]=getchar();

  if(str[i]=='\n') break;

  }

  str[i]=【12】;

  sptr=str;

  while(*sptr) putchar(*sptr【13】);

  }

  (12) 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。

  #include

  main()

  { char str[100],str2[100],c;

  int i,s;

  printf("\n input string 1:\n"); gest(str1);

  printf("\n input string 2:\n"); gest(str2);

  i=0;

  while((strl[i]==str2[i]&&(str1[i]!=【14】))

  i++;

  s=【15】;

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

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

  #include

  main()

  { FILE *fp;

  char str[100]; int i=0;

  if((fp=fopen("text.txt",【16】))==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]=【17】;

  fputc(str[i],fp);

  i++;

  }

  fclose(fp);

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

  fgets(str,100,fp);

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

  fclose(fp);

  }

  (14) 以下程序可以把从键盘上输入的十进制数(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]=【19】;

  i++; n=n/base;

  } while(n!=0);

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

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

  { d=c[i];

  printf("%c",b【20】;

  }

  }

  参考答案

  一、选择题((1)-(40)题每题1分;(41)-(50)题每题2分)

  (1)B (2)B (3)D (4)D (5)B (6)A (7)B (8)C (9)D (10)A

  (11)D (12)C (13)A (14)B (15)D (16)C (17)B (18)A (19)A (20)A

  (21)C (22)D (23)A (24)D (25)B (26)C (27)C (28)B (29)C (30)C

  (31)D (32)D (33)B (34)C (35)B (36)D (37)B (38)A (39)D (40)D

  (41)A (42)A (43)C (44)B (45)B (46)D (47)A (48)C (49)B (50)C

  二、填空题(每空2分,共4分)

  (1)至(5)题中所有字母都允许大,小写或大小写混合

  (1) 【1】AUTOEXEC.BAT

  (2) 【2】外部(答 外部命令不扣分)

  (3) 【3】COPY A:*.DAT PRN

  (在 COPY 后面与A:*.DAT后面都至少要有一个空格)

  (4) 【4】RENXYZ\*.BAK *.FOR 或RENAME XYZ\*.BAK*.FOR

  (在REN 或RENAME 后面与XYZ\*.BAK 后面都至少要有一个空格)

  (5) 【5】ATTRIB+R WST.TXT

  (在ATTRIB 后面与+R后面都至少有一个空格)或ATTRIB WST.TXT+R(在ATTRIB后面与WST.TXT后面都至少要有一个空格)

  (6) 【6】1.0或1

  (7) 【7】10

  (8) 【8】60

  (9) 【9】8,17

  (10) 【10】 strlen(str )/2或strlen(str)/2.0或0.5*strlen(str)或j或j-1

  【11】 str[j-1]或*(str+j-1)

  (11) 【12】 '\0' 或0

  【13】 ++

  (12) 【14】 '\0'或0

  【15】 strl[i]-str2[i]

  (13) 【16】 "w"或"w+"或"wt"或"w+t"或"""wt+"

  【17】 str[i]-32 或str[i]-('a'-'A'或str[i]-'a'+'A'

  【18】 "r"或"r+"或"r+t"或"rt+"

  (14) 【19】 nºse

  【20】 [d]

【2017年最新C语言考题带答案】相关文章:

1.C语言程序基础练习题带答案

2.2017最新C语言介绍

3.最新C语言知识辅导练习题及答案

4.最新C语言考试强化训练题及答案

5.C语言经典例题及答案

6.C语言笔试试题及答案

7.C语言练习题及其答案

8.常用C语言测试题及答案

9.C语言for循环