程序设计自测试卷(2)_第1页
程序设计自测试卷(2)_第2页
程序设计自测试卷(2)_第3页
程序设计自测试卷(2)_第4页
程序设计自测试卷(2)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、?程序设计?课程期终自测试卷2学号: 姓名: 队别: 一、选择题每题1分,共40分下面说法正确的选项是 。A构造化程序的根本构造有三种,分别是循环构造、选择构造和顺序构造B计算机只能执行顺序构造的C语言源程序C循环构造无法使用NS流程图描述D一般称含有20条以内语句的算法为简单算法,超过20条那么不可能是简单算法下面说法正确的选项是 。A只要程序使用根本构造编写,运行时就不会出错BMAIN()函数是每一个C语言程序必须定义的C任何函数只能有一种根本构造D 任何复杂问题都可以只使用三种根本构造来解決以下选项中,合法的C语言常量是 。A C+B C 0.0D 2B以下选项中,合法的C语言实数是 。

2、A .9E0B E22C D 设a,b,c是整型变量,以下选项中的赋值表达式错误的选项是 。A a=1=(b=1)=1B a=(b=0)*(c+0)C a=b=c*0D a=1%(b=c=9)+46有如下程序#include main()char* msg =Hello;int x=012;printf(%s, X =%d.n, msg, x+1);程序运行后的输出结果是 。A Hello, X =11.B He, X=13.C HelX=121.D Hello, X=013.对于if(表达式)语句,以下说法正确的选项是 。A“表达式的值只能是整数值B在“表达式中不能调用返回整数的函数C在“表

3、达式中不能含有函数调用D“表达式可以是算术表达式对于函数声明void fun(int a1, int *b);以下表达中正确的选项是 。A函数参数a,b都是指针变量B声明有语法错误,参数a的数组大小必须大于1C调用该函数时,形参a仅复制实参数组中第一个元素D调用该函数时,a的值是对应实参数组的内容,b的值是对应实参的地址设有如下程序段int a2=0;int b =0,0,1;char c=A;char d= 0;以下表达中正确的选项是 。Aa、b的定义合法,c、d的定义不合法B所有定义都是合法的C只有d的定义不合法,其余定义均合法D只有a的定义合法,其余定义均不合法以下涉及字符串数组、字符指

4、针的程序段,没有编译错误的选项是 。A ) char *str, name3;B char * str, name5; str=name; name=name;C char str17=prog. c0, str27;D char line10; str2=str1; line=/* * * */;以下表达中错误的选项是 。A算法正确的程序可以有零个输入B算法正确的程序最终一定会完毕C算法正确的程序可以有零个输出D算法正确的程序对于一样的输入一定有一样的结果以下表达中正确的选项是 。AC语句必须在一行内写完BC程序中的每一行只能写一条语句CC语言程序中的注释必须与语句写在同一行D简单C语句必须

5、以分号完毕以下选项中关于C语言常量的表达错误的选项是 。A经常被使用的变量可以定义成常量B常量分为整型常量,实型常量、字符常量和字符串常量C常量可分为数值型常量和非数值型常量D所谓常量,是指在程序运行过程中,其值不能被改变的量以下选项中,不合法的C语言用户标识符是 。Aa bB AaBcC a - - bD _1假设变量均已正确定义并赋值,以下合法的C语言赋值语句是 。A x=y=5;B ;C x+n=i;D x=5=4+1;设有定义:int a;float b;执行scanf(%2d% f, &a, &B);语句时,假设从键盘输入876 543.0那么a和b的值分别是 。A87和6.0C87

6、和543.0D76和543.0有以下定义语句,编译时会出现编译错误的选项是 。A char a=x2d;B char a=n;C char a=a;D char a=aa;当变量c的值不为2、4、6时,值也为真的表达式是 。A (c=2&c=2&c=2&c=6)|(c!=3)|(c!=5)有以下计算公式 (x0)y= (x=0) y=sqrt(x);Bif(x=0) y=sqrt(x);if(x =0?x: -x);if(x0) y=sqrt(-x);有以下程序#includemain() int y=10;while(y- -);printf(y=%dn,y);程序执行后的输出结果是 。y=

7、-1;By=0;C y=1;Dwhile构成无限循环有以下程序:#includemain() int i;for(i=l;i=40;i+) ifi+%5= =0if+i%8= =0pintf(%d,i; printf(n);程序执行后的输出结果是 。A 5B 24C 32D 40有以下程序:#includemain() int s;scanf(%d,s);while(s0) switch(s case 1: printf(%d,s+5),case 2: printf(%d,s+4);break;case 3: printf(%d,s+3);default: printf(%d,s+1);bre

8、ak; scanf(%d,s; 运行时,假设输入1 2 3 4 5 0回车,那么输出结果是 。A 66656B C 66666D 以下表达中错误的选项是 。A用户定义的函数中可以没有 retun语句B用户定义的函数中可以有多个 return语句,以便可以调用一次返回多个函数值C用户定义的函数中假设没有 return语句,那么应当定义函数为void类型D函数的 return语句中可以没有表达式有以下程序:#includevoid fun(char *c,int d) *c=*c+1;d=d+1;printf(%c,%c,*c,d);main() char b=a, a=A;fun(&b, A ;

9、printf(%c, %cn, b, a);程序运行后的输出结果是 。A b,B,b,AB b,B,B,AC a, B,B,aD a,B,a,B以下选项中,能正确定义数组的语句是 。A int num0.2021;B int num ;C int N=2021;D #define N 2021 int numN;int numN;以下函数实现按每行8个输出w所指数组中的数据:#include stdiohvoid fun(int *w, int n) int i;for(i=0;in;i+ +) printf(%d, wi); printf(n);在横线处应填入的语句是 。Aif(i/8= =

10、0) printf(n);Bif(i/8= =0) continue;Cif(i%8= =0) printf(n);Dif(i%8= =0) continue;有以下程序:#include void funchar *c while(*c) if(*c=a*c=z) *c=*c - (a-A); c+; main() char s81; gets(s); fun(s); puts(s);当执行程序时从键盘上输入 Hello Beijing回车,那么程序运行后的输出结果是 。A hello beijing B Hello Beijing C HELLO BEIJING D hELLO Beiji

11、ng有以下程序:#includemain( )int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1;int i,j,k,t;for(i=0;i4;i+)for(j=0;j3;j+)for(k=j+1;kaki) t=aji;aji=aki; aki=t; /*按列排序*/for(i=0;i4;i+) printf(d,aii);程序运行后的输出结果是 。A 1,6,2,1,B 8,7,3,1,C4,7,5,2,D1,6,5,7,有以下程序 strcat函数用于连接两个字符串:#include #include main()char a20 =ABCD0EFG0,b =

12、IJK;strcat(a,b);printf(%sn);程序运行后的输出结果是 。A IJKB ABCDE0EFG0IJKC ABCDIJKD EFGIJK有以下程序段:char name20;int num;scanf(name=%s num=%d,name,num);当执行上述程序段,并从键盘输入:name=Lili num=1001回车后,name的值为 。A name=Lili num=1001B name =LiliC Lili num=D Lili有以下程序:#includemain( )char ch =uvwxyz,*pc;pc=ch;printf(%cn,*(pc+5);程序

13、运行后的输出结果是 。A zB 0C元素ch5的地址D字符y的地址有以下程序:#include main( )char s =012xy;int i,n=0for(i=0;si!=0;i+ +)if(si=asi=z) n+;printf(%dn,n);程序运行后的输出结果是 。A 0B 2C 3D 5有以下程序:#includeint fun(int n) ifn= =1retum 1;elsereturn(n+fun(n-1);main( )int x;scanf(%d, &x);x=fun(x);printf(%dn, x)执行程序时,给变量x输入10,程序运行后的输出结果是 。A 55

14、B 54C 65D 45有以下程序:#include int f(int m static int n=0;n + =m;return n;main( ) int n=0;printf(%d,f(+n);printf(%dn,f(+n);程序运行后的输出结果是 。A 3,3B 1,1C 2,3D 1,2设有以下语句:typedef struct TT char c; int a4; CIN;那么下面表达中正确的选项是 。ACIN是 struct TT类型的变量BTT是 struct类型的变量C可以用TT定义构造体变量D可以用CIN定义构造体变量有以下程序:#include struct ord

15、 int x,y;dt2=1,2,3,4;main()struct ord *p=dt;printf(%d,+ +(P-x);printf(%dn,+ +(p-y);程序运行后的输出结果是 。A 3,4B 4,1C 2,3D 1,2有以下程序:#include #define SUB(A (a)-(a) main() int a=2,b=3,c-5, d;d=SUB(a+b)*c;printf(%dn,d);程序运行后的输出结果是 。A 0B -12C -20D 10有以下程序#include main( ) int a=2,b;b=a2;printf (%dn, b );程序运行后的输出结果

16、是 。A 2B 4C 6D 8以下关于C语言文件的表达中正确的选项是 。A文件由一系列数据依次排列组成,只能构成二进制文件B文件由构造序列组成,可以构成二进制文件或文本文件C文件由数据序列组成,可以构成二进制文件或文本文件D文件由字符序列组成,其类型只能是文本文件有以下程序#include main( ) FILE * fp;int a10=1,2,3,0,0,i;fp= fopen(d2. dat, wb);fwrite(a, sizeof(int), 5, fp);fwrite(a, sizeof(int), 5, fp);fclose(fp);fp=fopen(d2. dat, rb);

17、fread( a, sizeof(int), 10, fp);fclose(fp);for(i=0;i10;i+ +)printf(% d, , ai);程序运行后的输出结果是 。A 1,2,3,0,0,0,0,0,0,0,B 1,2,3,1,2,3,0,0,0,0C 123,0,0,0,0,123,0,0,0,0,D 1,2,3,0,0,1,2,3,0,0二、程序填空题共18分使用VC2021翻开考生文件夹下 blank1中的解决方案。此解决方案的工程中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符

18、串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:局部源程序在文件 blank1.c中。不得增行或删行,也不得更改程序的构造!#include #include #define N 5#define M 10int fun(char(* ss)M, int k) int i, j=0, len;/* * * * * * * * * * found * * * * * * * * * * /for(i=0;1【1】;i+ + len=strlen(ssi);/* * * * * * * * * * found

19、* * * * * * * * * * /iflen=【2】/* * * * * * * * * * found * * * * * * * * * * /strcpy(ssj+ +, 【2】); return j;main() char xNM=Beijing, Shanghai, Tianjin,Nanjing,Wuhan;int i,f;printf(nThe original stringnn);for(i=0;iN;i+ +)puts(xi);printf(n);f= fun(x, 7);printf(The string witch length is less than or e

20、qual to 7:n);for(i=0;if;i+) puts(xi);printf(n);三、程序修改题共18分使用VC+2021翻开考生文件夹下 modi1中的解決方案。此解決方案的工程中包含一个源程序文件modi1.c在此程序中,函数fun的功能是:逐个比拟p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。例如,假设主函数中a字符串为aBCDeFgH,b字符串为ABcd,那么c中的字符串应为“ aBcdeFgH。请改正程序中的错误,使它能得出正确的结果。注意:局部源程序在文件modi1.c中,不得增行或刷行,也不得更改程序

21、的构造!#include #include void fun(cha * p,char *q, char * c)/* * * * * * * * * * found * * * * * * * * * * /int k= 1;/* * * * * * * * * * found * * * * * * * * * * /while( * p != * q ) if( * p*q) ck=*q;else ck=*p;if(*p) p+;if(*q) q+;k+; main() char a10= aBCDeFgH, b10=Abcd, c80=0;fun(a, b, c);printf(The string a:);puts(a) ;printf(T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论