当前位置:首页 > 专题范文 > 公文范文 >

2023年C语言试题

时间:2023-02-14 20:25:07 来源:网友投稿

引导语:C语言是众多编程语言中的一种,以下是小编整理的C语言试题(精选),欢迎参考阅读!1.若有以下程序#includemaininta=6,b=0,c=0;for;a;b下面是小编为大家整理的2023年C语言试题,供大家参考。

2023年C语言试题

  引导语:C语言是众多编程语言中的一种,以下是小编整理的C语言试题(精选),欢迎参考阅读!

    1.若有以下程序

  #include

  main

  int a=6, b=0, c=0;

  for ;a; b += a; a -= ++c;

  printf"%d,%d,%d", a,b,c;

  则程序的输出结果是

  A 1,14,3

  B 0,14,3

  C 0,18,3

  D 0,14,6

  参考答案:B

  【解析】本循环的条件判断时只要a为0就退出循环体,初始值a的值为6,满足条件执行完循环体,b的值为6,a-=+ +c即a=a-++c,所以a的值为5,c的值为1第二次循环后b的值为11,a的值为3,c的值为2第三次也是最后循环后,a的值为0,b的值14,c的值为3

    2.以下选项中非法的C语言字符常量是

  A '\007'

  B ''

  C 'aa'

  D 'xaa'

  参考答案:C

  【解析】C选项中是字符串常量,应该用双引号表示即"aa"所以选择C选项

    3.若有以下程序

  #include

  void spint *a

  int b=2;

  a=&b; *a = *a * 2; printf"%d,", *a;

  main

  int k=3, *p=&k;

  spp; printf"%d,%d", k, *p;

  则程序的输出结果是

  A 4,3,3

  B 4,3,4

  C 6,3,6

  D 6,6,6

  参考答案:A

  【解析】首先在主函数中给整型变量k赋值为3,将变量k的地址赋给指针变量p;调用sp函数,将实参p的值传给形参a,在sp函数中,指针变量a又获得变量b的地址,通过运算后,输出a的值为4;返回主函数,输出k的值和p的值为3和3。因此A选项正确。

    4.若有以下程序

  #include

  int k=7;

  void fint **s

  int *t=&k;

  *s=t;

  printf"%d,%d,%d,", k, *t, **s;

  main

  int i=3,*p=&i, **r = &p;

  fr; printf"%d,%d,%d", i, *p, **r;

  则程序的输出结果是

  A 3,3,3,7,7,7

  B 3,7,7,7,7,7

  C 7,7,7,3,3,3

  D 7,7,7,3,7,7

  参考答案:D

    5.若有以下程序

  #include

  int *fint *s,int *t

  int *k;

  if *s < *t k = s; s=t; t=k;

  return s;

  main

  int i=3, j=5, *p=&i, *q=&j, *r;

  r=fp,q; printf"%d,%d,%d,%d,%d", i, j, *p, *q, *r;

  则程序的输出结果是

  A 3,5,5,3,5

  B 3,5,3,5,5

  C 5,3,5,3,5

  D 5,3,3,5,5

  参考答案:B

  【解析】在主函数中分别给整型变量i、j和指针型变量p、q赋初值,并声明指针变量r;调用f函数,并将实参变量p和q的值传递给形参变量s和t,并且f函数是指针型函数,即函数的返回值将是一个地址。在f函数中,如果条件成立,则将指针变量s和t互换,并且将指针s的地址返回主函数。最后输出i, j, *p, *q, *r的值,即3,5,3,5,5。因此B选项正确。

    6.若有以下程序

  #include

  #define N 4

  void funint a[][N], int b[], int flag

  int i,j;

  fori=0; i<N; i++

  b[i] = a[i][0];

  forj=1; j<N; j++

  if flag ? b[i] > a[i][j] : b[i] < a[i][j]

  b[i] = a[i][j];

  main

  int x[N][N]=1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16, y[N],i;

  funx, y, 1;

  for i=0; i<N; i++ printf"%d,", y[i];

  funx, y, 0;

  for i=0;i<N; i++ printf"%d,", y[i];

  printf"";

  则程序的输出结果是

  A 1,5,9,13,4,8,12,16,

  B 4,8,12,16,1,5,9,13,

  C 1,2,3,4,13,14,15,16,

  D 13,14,15,16,1,2,3,4,

  参考答案:A

    7.若有以下程序

  #include

  void funint a[ ], int n

  int t,i,j;

  for i=1; i<n; i+=2

  for j=i+2; j<n; j+=2

  if a[i] > a[j] t=a[i]; a[i]=a[j];a[j]=t;

  main

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

  func, 10;

  for i=0;i<10; i++ printf"%d,", c[i];

  printf"";

  则程序的输出结果是

  A 1,10,3,8,5,6,7,4,9,2,

  B 10,9,8,7,6,5,4,3,2,1,

  C 2,9,4,7,6,5,8,3,10,1,

  D 10,1,8,3,6,5,4,7,2,9,

  参考答案:D

  【解析】该题首先对一维数组进行初始化,c[0]到c[9]依次赋值为10到1;func, 10;语句调用fun函数,fun函数的功能是将一维数组偶数位元素的数值由小到大排序;最后将排好序的新的一维数组进行输出。因此D选项正确。

    8.若有以下程序

  #include

  main

  int i,j=0;

  char a[]="How are you!";

  for i=0; a[i]; i++

  if a[i] != ' ' a[j++]=a[i];

  a[j]='\0';

  printf"%s",a;

  则程序的输出结果是

  A Hay!

  B Howareyou

  C Howareyou!

  D How are you!

  参考答案:C

  【解析】主函数中首先定义字符数组a[]="How are you!";执行for循环语句,语句if a[i] != ' ' a[j++]=a[i];其功能是将字符数组中的空格去掉。因此C选项正确。

    9.若有以下程序

  #include

  char *a="you";

  char b[ ]="Welcome you to China!";

  main

  int i, j=0; char *p;

  for i=0; b[i] !='\0'; i++

  if *a == b[i]

  p=a;

  for j=i; *p!='\0'; j++

  if *p != b[j] break;

  p++;

  if *p=='\0' break;

  printf"%s", &b[i];

  则程序的输出结果是

  A China!

  B to China!

  C me you to China!

  D you to China!

  参考答案:D

  【解析】该程序首先定义*a和b[ ],并进行初始化。主函数中通过外层for循环语句,遍历字符数组b[ ],并且将符合if条件语句的字符赋给数组p;for内层循环语句,遍历字符数组a[ ]。再将符合if条件语句的结果输出。因此D选项正确。

    10.若有以下程序

  #include

  main

  char a[20], b[ ]="The sky is blue."; int i;

  for i=0; i<7; i++ scanf"%c", &b[i];

  getsa; printf"%s%s", a,b;

  执行时若输入: 其中表示回车符

  Fig flower is red.

  则输出结果是

  A wer is red.Fig flo is blue.

  B wer is red.Fig flo

  C wer is red.The sky is blue.

  D Fig flower is red.The sky is blue.

  参考答案:A

推荐访问:试题 语言 C语言试题 c语言试题(精选) C语言试题精选 C语言考试题库及答案(1) c语言概述题库