首页

C语言程序设计的试题

试题 |

时间:

2020-08-07

|

推荐访问

【www.hzwyx.net--试题】

C语言程序设计的试题

  在社会的各个领域,我们最不陌生的就是试题了,试题是命题者根据测试目标和测试事项编写出来的。一份好的试题都具备什么特点呢?以下是小编为大家整理的C语言程序设计的试题,供大家参考借鉴,希望可以帮助到有需要的朋友。

  一、单项选择题,答案不写入答题栏的一律不得分!(每题1.5分,共52.5分)

  1、结构化程序设计的3种结构是 。

  A)顺序结构、选择结构、转移结构 B)分支结构、等价结构、循环结构

  C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构

  2、以下叙述中正确的是 。

  A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行

  C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

  D)C语言出现的最晚,具有其他语言的一切优点

  3、C语言中最简单的数据类型包括 。

  A)整型、实型、逻辑型 B)整型、实型、字符型

  C)整型、字符型、逻辑型 D)字符型、实型、逻辑型

  4、若变量已正确定义并赋值,以下符合C语言语法的表达式是 。

  A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b

  5、若变量a,i已正确定义,且i已正确赋值,合法的语句是 。

  A)a= =1 B)++i; C)a=a++=5; D)a=int(i);

  6、已知:

  int t=0;

  while(t=1){...}

  则以下叙述正确的是 。

  A)循环控制表达式的值为0 B)循环控制表达式的值为1

  C)循环控制表达式不合法 D)以上说法都不对

  7、若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是 。

  A)10<回车>22<回车>33<回车> B)10.0,22.0,33.0<回车>

  C)10.0<回车>22.033.0<回车> D)10 22<回车>33<回车>

  [解析]遇到"%d%d%d"或"%f%f%f"不能用逗号作几个数据间的分隔符。

  8、有如下程序:

  main()

  {

  int x=1,a=0,b=0;

  switch(x)

  {

  case 0: b++;

  case 1: a++;

  case 2: a++;b++;

  }

  printf("a=%d,b=%d\n",a,b);}

  该程序的输出结果是

  A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2

  [解析]根据x=1,执行case 1,接着并未退出switch,而是执行case 2。即找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。

  9、有以下程序

  main()

  {int i=1,j=1,k=2;

  if((j++||k++)&&i++)

  printf("%d,%d,%d\n",i,j,k);

  }

  执行后输出结果是 。

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

  [解析]本题关键在于k保持原值2不变,因为或运算只需要检验j++是否为真即可判断整个表达式j++||k++为真,相当于没有执行k++。

  10、有如下程序

  main()

  {float x=2.0,y;

  if(x<0.0)y=0.0;

  else if(x<10.0)y=1.0/x;

  else y=1.0;

  printf("%f\n",y);}

  该程序的输出结果是 。

  A)0.000000 B)0.250000 C)0.500000 D)1.000000

  11、有如下程序:

  main()

  {int n=9;

  while(n>6){n--; printf("%d",n);}

  }

  该程序的输出结果是 。

  A)987 B)876 C)8765 D)9876

  [解析]第一遍循环n=9,执行n - -,输出n现值8,以此类推得到B答案。

  12、在下列选项中,没有构成死循环的是 。

  A)int i=100;

  while(1)

  {i=i%100+1;

  if(i>100)break;

  }

  B)for(;;);

  C)int k=10000;

  do{k++;}while(k>10000);

  D)int s=36;

  while(s)- -s;

  [解析]A选项if表达式的条件是假,而while表达式是真,构成死循环;B选项相当于while(1),无终止的执行循环体;C选项第一次执行循环后k=10001,自此后k>10000恒为真,无终止循环;D答案选项当s自减至0时,while表达式为假,跳出循环。

  13、设int x=1,y=1;表达式(!x||y--)的值是 。

  A)0 B)1 C)2 D)-1

  14、有以下程序

  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

  [解析](int)fun(a+c,b)为(int)fun(10,5),经调用后值为15;接着计算fun((int)fun(a+c,b),a-c)为fun(15,-6),经调用后值为9。

  15、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 。

  A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参

  C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的`形参

  16、若有以下调用语句,则不正确的fun函数的首部是 。

  main()

  { …

  int a[50],n;

  …

  fun(n, &a[9]);

  …

  }

  A)void fun(int m, int x[]) B)void fun(int s, int h[41])

  C)void fun(int p, int *s) D)void fun(int n, int a)

  [解析]把数组a中9号元素的地址传递给fun的函数参数,本题的考点是用什么来做函数的形参。A选项用不定长度的数组x作形参;B选项用长度小于50的数组h作形参;C用指针变量*s作形参;显然D中形参变量a只是普通的整形变量,不能接收来自于实参9号元素的地址。

  17、fseek函数的正确调用形式是 。

  A)fseek(文件指针,起始点,位移量) B)fseek(文件指针,位移量,起始点)

  C)fseek(位移量,起始点,文件指针) D)fseek(起始点,位移量,文件指针)

  18、若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是 。

  A)EOF B)-1 C)1 D)NULL

  19、若有说明语句:char c='\72'; 则变量c 。

  A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定

  20、若有说明 int a[3][4];则a数组元素的非法引用是 。

  A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4]

  21、设有以下说明语句

  struct stu

  {int a;

  float b;

  } stutype;

  则下面的叙述不正确的是 。

  A)struct是结构体类型的关键字 B)struct stu是用户定义的结构体类型

  C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名

  22、在C语言中,引用数组元素时,其数组下标的数据类型允许是 。

  A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式

  23、若运行时给变量x输入12,则以下程序的运行结果是 。

  main()

  {int x,y;

  scanf("%d",&x);

  y=x>12?x+10:x-12;

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

  }

  A)0 B)22 C)12 D)10

  24、以下说法正确的是 。

  A)C语言程序总是从第一个的函数开始执行

  B)在C语言程序中,要调用函数必须在main()函数中定义

  C)C语言程序总是从main()函数开始执行

  D)C语言程序中的main()函数必须放在程序的开始部分

  25、表达式0x13^0x17的值是 。

  A)0x04 B)0x13 C)0xE8 D)0x17

  26、有以下程序

  #define F(X,Y)(X)*(Y)

  main()

  {int a=3, b=4;

  printf("%d\n", F(a++, b++));

  }

  程序运行后的输出结果是 。

  A)12 B)15 C)16 D)20

  27、下列程序执行后的输出结果是 。

  void func(int *a,int b[])

  { b[0]=*a+6; }

  main()

  {int a,b[5];

  a=0; b[0]=3;

  func(&a,b); printf("%d\n",b[0]);

  }

  A)6 B)7 C)8 D)9

  [解析]func(&a,b)中两个参数分别把整形变量a的地址传递给指针变量*a、把数组b(即数组名作实参)首元素的地址传递给形参数组b[]。因此在func()函数中,b[0]=*a+6=0+6=6。

  28、若有下面的程序段:

  char s[]="china";char *p; p=s;

  则下列叙述正确的是 。

  A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等

  C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等

  29、有以下程序

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

  }

  程序运行后的输出结果是 。

  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,

  [解析]sort(&aa[3],5)的作用是把数组aa的第3号元素及其后续4个元素(一共5个元素)由大到小排列,其他元素原样输出。

  30、以下程序的运行结果是 。

  #include "stdio.h"

  main()

  {struct date

  {int year,month,day;}today;

  printf("%d\n",sizeof(struct date));

  }

  A)6 B)8 C)10 D)12

  31、若有语句int *point, a=4;和 point=&a;下面均代表地址的一组选项是 。

  A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point

  32、已定义以下函数

  fun(char *p2, char *p1)

  {

  while((*p2=*p1)!='\0'){p1++;p2++;}

  }

  函数的功能是 。

  A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2

  C)对p1和p2两个指针所指字符串进行比较 D)检查p1和p2两个指针所指字符串中是否有'\0'

  33、若执行下述程序时,若从键盘输入6和8时,结果为 。

  main()

  {int a,b,s;

  scanf("%d%d",&a,&b);

  s=a

  if(a<b)

  s=b;

  s*=s;

  printf("%d",s);

  }

  A)36 B)64 C)48 D)以上都不对

  34、下列关于C语言数据文件的叙述中正确的是 。

  A)文件由ASCII码字符序列组成,C语言只能读写文本文件

  B)文件由二进制数据序列组成,C语言只能读写二进制文件

  C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

  D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

  35、有以下程序

  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

  [解析]把字符串中的小写字符‘d’转换为大写字符‘D’。字符指针*s是指向该串的首字符(即字符‘a’),随着s++不断向后续字符移动。t - 'a'+ 'A'是英文字符小写转大写的公式,这里不再赘述。

  二、填空题,答案不写入答题栏的一律不得分!(每空2分,共30分)

  36、以下程序段的输出结果是 28 。

  main()

  {int a=2,b=3,c=4;

  a*=16+(b++)-(++c);

  printf("%d",a);

  }

  37~38、若变量n中的值为24,则print()函数共输出 5 行,最后一行有 4 个数。

  void print (int n,int aa[])

  {int i;

  for (i=1; i<n+1; i++)

  {printf ("%6d", aa[i]);

  if(!(i%5)) printf ("\n");

  }

  printf ("\n");

  }

  39、调用C语标准库函数时要求用 include 命令。

  40、stract函数的作用是连接两个字符数组中的字符串。

  41、C语言程序的注释可以出现在程序中的任何地方,一个注释以 /* */ 作为开始和结束。

  42、设二进制数A是00101101,若想通过异或运算A^B使A的高4位取反,低4位不变,则二进制数B应是1111 0000。

  43、若已知a=10,b=20,则表达式!a<b的值为 1 。

  44、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为 10 。

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

  45~46、下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。randomize()是初始化随机数生成器函数,rand()返回一个随机数函数。请填空。

  #include

  #include

  void fun(int a[],int n, int *max, int *d)

  { int i;

  *max=a[0];

  *d=0;

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

  if(*max< a[i] )

  {*max=a[i];*d=i;}

  }

  main()

  { int i, x[20], max, index, n=10;

  randomize();

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

  {

  x[i]=rand()%50; printf("%4d",x[i]);

  }

  printf("\n");

  fun(x,n,&max,&index);

  printf("Max=%5d,Index=%4d\n", max, index);

  }

  47、以下程序的输出结果是 246 。

  void fun()

  { static int a=0;

  a+=2; printf("%d",a);

  }

  main()

  { int cc;

  for(cc=1;cc<4;cc++)fun();

  printf("\n");

  }

  [解析]第一次调用fun(),输出a为2;第二次调用fun(),输出a为4(局部静态变量,不重新赋初值);则第三次调用输出为6。

  48、以下程序的输出结果是 7 。

  #define MAX(x,y)(x)>(y)?(x):(y)

  main()

  { int a=5,b=2,c=3,d=3,t;

  t=MAX(a+b,c+d)*10;

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

  }

  49、下列y的值是 8 。

  int y; y=sizeof(2.25*4);

  50、mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

  int mystrlen(char *str)

  { int i;

  for(i=0; *(str+i)或者写成str[i] != ′\0′;i++);

  return(i);

  }

  三、程序设计题。要求程序结构清晰,没有逻辑错误,书写工整,无需写出运行结果。请写在背面并标明题号(第51题7.5分、第52题10分,共17.5分,按关键步骤评分)

  51、输入一个3╳3的整数矩阵,求其对角线元素之差。

  #include

  void main()

  {

  int a[3][3],minus;

  int i,j;

  printf("enter data: ");

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

  for (j=0;j<3;j++)

  scanf("%d",&a[i][j]);

  minus=a[0][0];

  for (i=1;i<3;i++)

  minus=minus-a[i][i];

  printf("minus=%6d ",minus);

  }

  52、有10个学生,每个学生的数据包括学号(stu_num,6个字符,如s00101)、姓名(name,8个字符)、三门课程的成绩(score[3],实型)及其平均分(avr,实型,初始时不赋值,)。首先输入这10个学生的数据,然后再计算每个学生3门课程的平均分,存回avr中,并输出第6号学生的所有信息。

  #include

  #define N 10

  struct student

  {

  char stu_num[6];

  char name[8];

  float score[3];

  float avr;

  }stu[N];

  void main()

  {

  float sum;

  int i,j;

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

  {printf("enter information of student %d: ",i+1);

  printf("stu_num:");

  scanf("%s",stu[i].stu_num);

  printf("name:");

  scanf("%s",stu[i].name);

  for (j=0;j<3;j++)

  {printf("score %d:",j+1);

  scanf("%f",&stu[i].score[j]);/*此处的&运算符是指取结构体数组中元素的地址*/

  }

  }

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

  {sum=0;

  for (j=0;j<3;j++)

  sum+=stu[i].score[j];

  stu[i].avr=sum/3.0;

  }

  printf("stu_num name score1 score2 score3 average_score ");

  printf("%6s%10s",stu[5].stu_num,stu[i].name);

  for (j=0;j<3;j++)

  printf("%9.2f",stu[5].score[j]);

  printf("%8.2f",stu[5].avr);

  }

延伸阅读
工程计价练习试题汇编1、下列项目中属于可变成本的是( )。  A 修理费  B 利息、支出  C 计时工资及福利费  D 计件工资及福利费  2、当某项目折现率i1=10%时,财务净现值FNPV1=2教学文档-试题-工程计价练习试题
2020-08-10
方剂学试题一、是非题(每题2分,共20分)  1.《五十二病方》是我国现存最早的方书,被尊称为“方书之祖”。( )  2.运用败毒散治疗热毒痢,称为“逆流挽舟”法。( )  3.十枣汤虽名曰“汤”,但教学文档-试题-方剂学试题
2020-08-10
阅读试题:《刘洎,字思道》阅读下面的文言文,完成8-10题。  刘洎,字思道,荆州江陵人。初为萧铣黄门侍郎,南略地岭表,下五十城,未还而铣败,遂以城自归,授南康州都督府长史。  贞观七年,擢给事中,封教学文档-试题-阅读试题:《刘洎,字思道》
2020-08-10
学校食堂食品安全考试题在各领域中,我们都离不开试题,借助试题可以更好地考核参考者的知识才能。大家知道什么样的试题才是规范的吗?以下是小编精心整理的学校食堂食品安全考试题,希望能够帮助到大家。  单位:教学文档-试题-学校食堂食品安全考试题
2020-08-09
四年级试题参考 一 查字典。  完(善) 字典里的几种解释:1 善良,品质好;2 好的行为;3 交好,和好;4 高明的,良好的。( )  二 写出下面词语的反义词:  解除( )  三 阅读短文,完教学文档-试题-四年级试题参考
2020-08-09
安装造价师试题的类型【提要】造价工程师试题信息 : 安装造价师试题类型有哪些  2017年造价工程师考试战斗也该打响了,小编整理了2017年安装造价师试题类型,有需要报考2017年造价师的同学可以备考教学文档-试题-安装造价师试题的类型
2020-08-09
初一下册数学测试题一、选择题。  1、如果一个三角形的两边长分别为2和4,则第三边长可能是()  A 2  B 4  C 6  D 8  2、下列计算正确的是()  A x4x4=x16  B a2+教学文档-试题-初一下册数学测试题
2020-08-09
酒店员工培训考试题目在社会的各个领域,我们很多时候都不得不用到试题,借助试题可以为主办方提供考生某方面的知识或技能状况的信息。还在为找参考试题而苦恼吗?下面是小编收集整理的酒店员工培训考试题目,供大家教学文档-试题-酒店员工培训考试题目
2020-08-09
安全生产知识考试题在各个领域,我们总免不了要接触或使用试题,试题是命题者按照一定的考核目的编写出来的。什么样的试题才能有效帮助到我们呢?下面是小编收集整理的安全生产知识考试题,仅供参考,大家一起来看看教学文档-试题-安全生产知识考试题
2020-08-08
三年级数学期末试题引导语:在平平淡淡的日常中,许多人都需要跟试题打交道,借助试题可以检测考试者对某方面知识或技能的掌握程度。还在为找参考试题而苦恼吗?以下是小编整理的三年级数学期末试题,仅供参考,希望教学文档-试题-三年级数学期末试题
2020-08-08

图文推荐

  • 推荐访问