C语言程序设计-阅读程序试题库与答案
- 格式:doc
- 大小:51.00 KB
- 文档页数:36
C语言程序设计试题及参考答案精心整理c语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是(d)a、一个c源程序可以由一个或多个函数共同组成b、一个c源程序必须涵盖一个main函数c、c程序的基本共同组成单位就是函数d、在c程序中,注释说明只能位于一条语句的后面2、以下四个选项中,就是不合法的用户标识符的选项就是(b)a、abcb、12acc、sund、a3、建有语句inta=4;则继续执行了语句a+=a-=a*a后,变量a的值就是(a)a、-24b、0c、4d、164、以下运算符中优先级最低的就是(b)a、a、inputx、y、z;b、scanf(“%d%d%d”,&x,&y,&z);c、scanf(“%d%d%d”,x,y,z);d、read(“%d%d%d”,&x,&y,&z);9、假定从键盘输入23456,下面程序的输出结果是:(c)voidmain(){intm,n;scanf(“-=”,&m,&n);printf(“m=%dn=%d\\n”,m,n);}a、m=23n=45b、m=234n=56c、m=23n=456d、语句有错误10、若运转时,给变量x输出12,则以下程序的运转结果就是(a)main(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\\n”,y);}精心整理a、0b、22c、12d、1011、c语言中while和do-while循环的主要区别(a)a、do-while的循环体至少继续执行一次b、while的循环控制条件比do-while的循环控制条件严格c、do-while允许从外部转到循环体内d、do-while的循环体不能是复合语句12、以下对二维数组的恰当表明的语句就是(c)a、inta[3][]b、floata(3,4)c、doublea[3][4]d、floata(3)(4)13、以下程序的输出结果是(c)main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d”,x[i][2-i]);}a、1,5,9b、1,4,7c、3,5,7d、3,6,914、以下能对一维数组a进行正确初始化的语句是(c)a、inta[10]=(0,0,0,0,0);b、inta[10]={};c、inta[10]={0};d、inta[10]={10*1};15、以下程序执行后的输出结果是:(a)intfun(inta,intb,intc){a=456;b=567;c=678;}voidmain(){intx=10,y=20,z=30;z=fun(x,y,z);printf(“%d,%d,%d\\n”,z,y,x);}a、30,20,10b、10,20,30c、10,30,50d、10,30,4016、以下说法正确的是(a)如果在一个函数中的复合语句中定义了一个变量,则该变量a、只在该复合语句中有效b、在该函数中有效c、在本程序范围内有效d、为非法变量17、以下函数调用语句中含有的实参个数为(b)func((exp1,exp2,exp3),(exp4,exp5));a、1b、2c、4d、518、在c语言程序中,以下观点恰当的就是(b)。
C语言程序设计试题第1、2、3章 概述、类型、表达式一、选择题1、 一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )A、 任意B、 第一个函数必须是主函数,其他函数任意C、 必须完全按照执行的顺序排列D、 其他函数可以任意,主函数必须在最后2、 下列四个叙述中,正确的是:( )A、 C程序中的所有字母都必须小写B、 C程序中的关键字必须小写,其他标示符不区分大小写C、 C程序中的所有字母都不区分大小写D、 C语言中的所有关键字必须小写3、 下列四个叙述中,错误的是:( )A、 一个C源程序必须有且只能有一个主函数B、 一个C源程序可以有多个函数C、 在C源程序中注释说明必须位于语句之后D、 C源程序的基本结构是函数4、 下面不是C语言合法标识符的是:( )A、abcB、5nC、_4mD、x35、 以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、 C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、 C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、 下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、 在C语言中(VC环境),一定是长整型常数的是:( )A、0LB、4962710C、0412765D、0xa34b7fe11、 若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:( )A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、 以下合法的赋值语句是:( )A、x=y=100B、d--;C、x + yD、c = int(a+b);13、 设变量t为int型,下列选项中不正确的赋值语句是:( )A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、 在以下一组运算符中,优先级最高的是:( )A、<=B、==C、%D、&&15、 下列能正确表示a≥10或a≤0的关系表达式是:( )A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、 下列只有当整数x为奇数时,其值为“真”的表达式是:( )A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、! (x%2)17、 设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:( )A、0B、语法错C、1D、“假”19、 表达式17%4 /8的值为:( )A、0B、1C、2D、320、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:( )A、无输出B、结果不确定C、-1D、121、 一个可执行的C程序的开始执行点是:( )A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、 组成C语句的一个必不可少的符号是:( )A. 逗号B. 引号C. 冒号D. 分号23、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( )A. intB. longC. floatD. double24、 下述是C语言中有关变量定义的几个说法,正确的是:( )A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、 与x * = y + z等价的赋值表达式是:( )A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、 当代电子计算机能够自动地处理指定的问题是因为:( )A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、 以下叙述中最准确的是:( )A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、 关于计算机程序设计,以下描述最准确的是:( )A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、 目前编写计算机程序一般采用的是:( )A.机器语言 B.汇编语言 C.高级语言 D.英语30、 设计一个计算机程序最基本的工作是:( )A.制定正确的算法 B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构 D.以上都不是31、 算法具有五个特性,以下选项中不属于算法特性的是:( )A.有穷性 B.简洁性 C.可行性 D.确定性32、 下述哪一个不是结构化程序基本结构:( )A.顺序 B.选择 C.循环 D.嵌套33、 C语言是一种:( )A.机器语言 B.汇编语言 C.高级语言 D.以上都不是34、 C语言源程序的扩展名为:( )A..exe B..c C..obj D..cpp35、 C程序编译后最终产生(即计算机执行)的文件的扩展名为()A..exe B..c C..obj D..cpp36、 下列各项中,不是C语言的特点是:( )A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、 构成C语言源程序的基本单位是:( ) A.子程序 B.过程 C.文本 D.函数38、 下列叙述正确的是:( )A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:( )A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、 以下叙述不正确的是:( )A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、 以下为C语句的是:( )A.a=8 B.a++; C.if(a>8) D.#include <stdio.h>以下不是C语句的是:( )A.a=8; B.a++; C.if(a>8); D.for(i=1;i<5;i++)42、 以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、 C程序中的复合语句指的是:( )A.并列的多个C语句 B.写在同一行中的多个C 语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、 当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行 B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、 在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。
阅读程序题以下程序的输出结果是 .. mainD{ float a;printf"%g";a;}A +00BCD 0下面程序的输出结果是B____..include <>main{ int x=10;{ int x=20;printf "%d;"; x;printf"%d\n"; x;}A 10;20B 20;10C 10;10D 20;20以下程序的输出结果是___B_.. main{ unsigned int n;int i=-521;n=i;printf"n=%u\n";n;}s";s;}A a bookB a book<四个空格C a boD 格式描述错误;输出不确定下面程序的输出结果是____..main{ int a;b;scanf"%2d%3d";&a;&b;printf"a=%d b=%d\n";a;b;}A a=12 b=34B a=123 b=45C a=12 b=345D 语句右错误以下程序段的输出结果是 .. int a=10;b=50;c=30;ifa>ba=b;b=c;c=a;printf"a=%d b=%d c=%d\n";a;b;c;A a=10 b=50 c=10B a=10 b=30 c=10C a=50 b=30 c=10D a=50 b=30 c=50以下程序的输出结果是 .. main{ int a=0;b=1;c=0;d=20;ifa d=d-10;else ifbifc d=15;else d=25;printf"d=%d\n";d;}A d=10B d=15C d=20D d=25下面程序的输出结果为 ..main{ int a=1;b=0;switcha{ case 1: switch b{ case 0: printf"0"; break;case 1: printf"1"; break;}case 2: printf"2"; break;}}A 0B 02C 012D 有语法错误以下程序的输出结果是 .. mainint v1=0;v2=0;v3=0;v4=0;k;fork=0;sk;k++switchsk{ case '1': v1++;case '3': v3++;case '2': v2++;default: v4++;}printf"v1=%d; v2=%d; v3=%d; v4=%d\n";v1;v2;v3;v4;}A v1=4;v2=2;v3=1;v4=1B v1=4;v2=9;v3=3;v4=1C v1=5;v2=8;v3=6;v4=1D v1=4;v2=7;v3=5;v4=8下面程序的输出是 ..main{ int x=1;y=0;a=0;b=0;switchx{ case 1: switchy{ case 0: a++;break;case 1: b++;break;}case 2: a++;b++;break;}printf"a=%d;b=%d\n";a;b;}A a=2;b=1B a=1;b=1C a=1;b=0D a=2;b=2下面程序的输出是____..main{ int num=0;whilenum<=2{ num++;printf"%d\n";num;}}A 1B 1C 1D 12 2 23 34下面程序的输出结果是____.. main{ int a=1;b=0;do{ switcha{ case 1: b=1;break;case 2: b=2;break;default : b=0;}b=a+b;}whileb;printf"a=%d;b=%d";a;b;}A 1;2B 2;1C 1;1D 2;2从键盘上输入"446755"时;下面程序的输出是____.. include <>main{ int c;whilec=getchar='\n'switchc -'2'{ case 0:case 1: putcharc+4;case 2: putcharc+4;break;case 3: putcharc+3;default: putcharc+2;break;}printf"\n";}下面程序的输出结果是____.. main{ int k=0;char c='A';do{ switchc++{ case 'A': k++;break;case 'B': k--;case 'C': k+=2;break;case 'D': k=k%2;contiue;case 'E': k=k+10;break;default: k=k/3;}k++;}whilec<'C' ;printf"k=%d\n";k;}A k=1B k=2C k=3D k=4下面程序的输出结果是____.. main{ int x;i;{ x=i;if++x%2==0if++x%3==0if++x%7==0printf"%d ";x;}}A 39 81B 42 84C 26 68D 28 70下面程序的输出结果是____.. include <>main{ int i;k;a10;p3;k=5;ai=i;fori=0;i<3;i++pi=aii+1;fori=0;i<3;i++k+=pi2;printf"%d\n";k;}A 20B 21C 22D 23假定从键盘上输入";<回车>";下面程序的输出是____.. include <>main{ float x;y;z;scanf"%f;%f";&x;&y;z=x/y;while1{ iffabsz>{ x=y;y=z;z=x/y;}else break;}printf"%f\n";y;}A B C D下面程序的输出结果是____.. main{ int i;j;x=0;fori=0;i<2;i++{ x++;forj=0;j<-3;j++{ ifj%2continue;x++;}x++;}printf"x=%d\n";x;}A x=4B x=8C x=6D x=12下面程序的输出结果是____..main{ int i;j;k=10;fori=0;i<2;i++{ k++;{ int k=0;forj=0;j<=3;j++{ ifj%2 continue;k++;}}k++;}printf"k=%d\n";k;}A k=4B k=8C k=14D k=18下面程序的输出结果是____.. include <>main{ int n33; i; j;fori=0;i<3;i++forj=0;j<3;j++nij=i+j;fori=0;i<2;i++forj=0;j<2;j++ni+1j+1+=nij;printf"%d\n"; nij;}A 14B 0C 6D 不确定下面程序的输出结果是____..include <>main{ int a45={1;2;4;-4;5;-9;3;6;-3;2;7;8;4};int i;j;n;n=9;i=n/5;j=n-i5-1;printf"a%d%d=%d\n"; i;j;aij;}A 6B -3C 2D 不确定下面程序的输出结果是____..int m33={ {1}; {2}; {3} };int n33={ 1; 2; 3 };main{ printf"%d\n"; m10+n00 ; / ① / printf"%d\n"; m01+n10 ; / ② /}① A 0 B 1 C 2 D 3② A 0 B 1 C 2 D 3下面程序的输出结果是____..include <>main{ char s150={"some string "};s2={"test"};printf"%s\n"; strcats1;s2;}A some stringB testC some stritestD some string test下面程序的输出结果是____.. include <>fchar s{ char p=s;whilep='\0'p++;returnp-s;}main{ printf"%d\n";f"ABCDEF";}A 3B 6C 8D 0下面程序的输出结果是____..include <>include <>main{ char str100 ="How do you do";strcpy str + strlenstr/2; "es she";printf"%s\n"; str;}A How do you doB es sheC How are youD How does she下面程序的输出结果是____..include <>funcint a;int b{ int c;c=a+b;returnc;main{ int x=6;y=7;z=8;r;r=funcx--;y++;x+y;z--;printf"%d\n";r;}A 11B 20C 21D 31下面程序的输出结果是____.. include <>void funint s{ static int j=0;do{ sj+=sj+1;}while++j<2;main{ int k;a10={1;2;3;4;5};fork=1;k<3;k++funa;fork=0;k<5;k++printf"%d";ak;}A 35756B 23445C 35745D 12345下面程序的输出结果是____.. include <>int k=1;main{ int i=4;funi;printf "\n%d;%d";i;k; / ① /}funint m{ m+=k;k+=m;{ char k='B';printf"\n%d";k-'A'; / ② /}printf"\n%d;%d";m;k; / ③ /}① A 4;1 B 5;6 C 4;6 D A;B;C参考答案都不对② A 1 B -59 C -64 D A;B;C参考答案都不对③ A 5;66 B 1;66 C 5;6 D A;B;C参考答案都不对下面程序的输出结果是____..include <>funint n; int s { int f1; f2;ifn==1||n==2s=1;else{ funn-1; &f1;funn-2; &f2;s=f1+f2;}}main{ int x;fun6; &x;printf"%d\n"; x;}A 6B 7C 8D 9下面程序的输出结果是____.. int w=3;main{ int w=10;printf"%d\n";fun5w;}funint k{ ifk==0 returnw;returnfunk-1k;}A 360B 3600C 1080D 1200下面程序的输出结果是____.. include <>funaint a{ int b=0;static int c=3;a=c++;b++;returna;}main{ int a=2;i;k;fori=0;i<2;i++k=funaa++;printf"%d\n";k;}A 3B 0C 5D 4下面程序的输出结果是____.. include <>void num{ extern int x;y;int a=15;b=10;x=a-b;y=a+b;}int x;y;main{ int a=7;b=5;x=a-b;y=a+b;num;printf"%d;%d\n";x;y;}A 12;2B 5;25C 1;12D 输出不确定下面程序的输出结果是____..main{ int a=2;i;fori=0;i<3;i++printf"%4d";fa;}fint a{ int b=0;static int c=3;b++;c++;returna+b+c;}A 7 7 7B 7 10 13C 7 9 11D 7 8 9下面程序的输出结果是____.. include <>try{ static int x=3;x++;returnx;}main{ int i; x;fori=0; i<=2; i++x=try ;printf"%d\n"; x;}A 3B 4C 5D 6下面程序的输出结果是____.. include <>main{ int x=1;void f1 ; f2 ;f1 ;f2x;printf"%d\n"; x;}void f1void{ int x=3;printf"%d "; x;void f2 xint x;{ printf"%d "; ++x;}A 1 1 1B 2 2 2C 3 3 3D 3 2 1下面程序的输出结果是____.. include <>define SUBX;Y XYmain{ int a=3;b=4;printf"%d\n";SUBa++;b++;}A 12B 15C 16D 20下面程序的输出结果是____..main{ int a={1;2;3;4;5;6};int p;p=a;printf"%d ";p;printf"%d ";++p;printf"%d ";++p;printf"%d ";p--;p+=3;printf"%d %d ";p;a+3;}A 1 2 3 3 5 4B 1 2 3 4 5 6C 1 2 2 3 4 5D 1 2 3 4 4 5下面程序的输出结果是____..main{ int a34={1;2;3;4;5;6;7;8;9;10;11;12};int p=a;p+=6;printf"%d ";p; / ① /printf"%d ";a+6; / ② /printf"%d ";a1+=2; / ③ /printf"%d";&a00+6;/ ④ /}A 7 7 7 7B ②句语法错误C ③句语法错误D ④句语法错误下面程序的输出结果是____..define FMT "%X\n"include <>{ static int a 4 = { 1;2;3;4;5;6;7;8;9;10;11;12 };printf FMT; a22; / ① /printf FMT; a+1+1 ; / ② /}① A 9 B 11 C A D B② A 6 B 7 C 8 D 前面三个参考答案均是错误的下面程序的输出结果是____..include <>main{ int a={1; 2; 3; 4; 5} ;int x; y; p;p=&a0;x=p+2;printf"%d;%d;%d\n"; p; x; y;}A 1;3;5B 1;2;3C 1;2;4D 1;4;5下面程序的输出结果是____.. void ivex;nint x;n;{ int t;p;p=x+n-1;whilex<p{ t=x;x++=p;p--=t;}}main{ int i;a={1;2;3;4;5;6;7;8;9;0};ivea;10;fori=0;i<10;i++printf"%d ";ai;printf"\n";}A 1 2 3 4 5 6 7 8 9 0B 0 9 8 7 6 5 4 3 2 1C 1 3 5 7 9 2 4 6 8 0D 0 8 6 4 2 9 7 5 3 1下面程序的输出结果是____..include ""funchar w;int n{ char t;s1;s2;s1=w;s2=w+n-1;whiles1<s2{ t=s1++;s1=s2--;s2=t;}}main{ static char p="1234567";funp;strlenp;printf"%s";p;}A 7654321B 1717171C 7171717D 1711717下面程序的输出结果是____.. include <>char p = "abcdefghijklmnopq" ;main{ int i=0;while p++='e' ;printf"%c\n"; p;}A cB dC eD f下面程序的输出结果是____.. include <>fint x; int y{ return y-x;}main{ int a=5; b=6; c;int f; g=f;printf"%d\n"; ga;b ;}A 1B 2C 3D 前面三个参考答案均是错误的下面程序的输出结果是____..include <>main{ int a=1;p;pp;pp=&p;p=&a;a++;printf "%d;%d;%d\n"; a;p; pp;}A 2;1;1B 2;1;2C 2;2;2D 程序有错误下面程序的输出结果是____..main{ char alpha7={"ABCD";"EFGH";"IJKL";"MNOP";"QRST";"UVWX";"YZ"};char p;int i;p=alpha;fori=0;i<4;i++printf"%c";pi;printf"\n";}A AEIMB BFJNC ABCD D DHLP下面程序的输出结果是____..include <>char pp23={ "abc"; "defgh"; "ijkl"; "mnopqr"; "stuvw"; "xyz"};main{ printf"%c\n";pp+1; / ① /printf"%c\n";pp0; / ② /printf"%c\n";pp+1+14; / ③ /printf"%c\n";pp12+2; / ④ /printf"%s\n";pp+1; / ⑤ /}① A a B d C i D m② A a B d C i D m③ A h B l C q D w④ A k B o C u D z⑤ A ijkl B mnopqr C stuvw D xyz下面程序的输出结果是____..include ""struct str1{ char c5;char s;};main{ struct str1 s12={ {"ABCD""EFGH"};{"IJK";"LMN"} };struct str2{ struct str1 sr;int d;}s2={"OPQ";"RST";32767};struct str1 p2;p0=&s10;p1=&s11;printf"%s";++p1->s; / ① /printf"%c"② /}① A LMN B MN C N D IJK② A O B P C Q D R以下程序的输出结果是____..struct st{ int x;y;}p;int s={10;20;30;40};struct st a={1;&s0;2;&s1;3;&s2;4;&s3}; main{ p=a;printf"%d\n";++++p->y;}A 10B 11C 20D 21以下程序的输出结果是____.. include <>main{ union EXAMPLE{ struct{ int x;y;}in;int a;b;}e;=1;=2;}A 2;3B 4;4C 4;8D 8;8下面程序的输出结果是____.. include <>main{ union{ int i2;long k;char c4;}r;s=&r;s->i0=0x39;s->i1=0x38;printf"%c\n";s->c0;}A 39B 9C 38D 8下面程序的输出是 ..main{ printf"%d\n"; EOF;}A -1B 0C 1D 程序是错误的参考答案参考答案:D注释:程序中除法运算的两个操作数均是整型;运算结果也是整型..参考答案:B注释:C语言允许在程序块分程序中说明变量..参考答案:C注释:变量i中的负号传送给变量n后;因n是无符号数;已不作为负号处理..参考答案:D注释:对变量x的――操作是后缀形式;变量x的减1操作要在执行完printf函数之后才进行;所以变量x的值在输出的时候仍然保持原值10..参考答案:B注释:C语言在执行printf时;对函数中的表达式表列的处理顺序是从后向前;即先处理n- -;再处理n++;最后处理n;而且每一个表达式作为一个处理单元;也就是说在不同的表达式中自增自减运算是单独考虑的..参考答案:A注释:变量x和变量y做按位与;结果为0x0200;右移4位为0x0020;再与0x005f做按位或;最后结果为0x007f..参考答案:A注释:逗号表达式的结果是用逗号分开的最后一个表达式的值;此题由于 c=='A'的值是0;所以逗号表达式的值为0..参考答案: B参考答案: A参考答案: C注释:在输出格式描述"%"中;m是输出总长度;n是实际字符的个数;这里m没有给出;则输出总长度就是实际输出字符的个数..参考答案: C参考答案:B参考答案:C参考答案:B参考答案:D参考答案:A参考答案: C参考答案:A参考答案: C注释:在switch语句中;case本身仅起到语句标号的作用;不会改变语句的流程;执行break语句才能退出当前的switch语句..参考答案: D注释:siwtch语句的表达式中;变量c是后缀的增一运算;第一次执行do-while循环时;执行case 'A'后面的语句..参考答案: D参考答案: B参考答案: B注释:fabs是浮点数绝对值函数..参考答案: A参考答案: C注释:C语言允许在程序块分程序内说明变量;如果在程序块内说明的变量和程序块外的变量同名;在块外说明的变量在块内是不可见的..可将此题和进行比较;加深理解..参考答案: C参考答案: B参考答案:① D ② A参考答案:D参考答案: B。
习题一一、选择题1.C程序的基本单位是(A)。
A.函数B.文件C.语句D.字符2.C程序中的变量(B)。
A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。
A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。
A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。
2.结构化程序由顺序、选择、循环三种基本结构构成。
3.一个C程序只有一个名为main的主函数。
4.C程序中的每个语句以分号结束。
5.C程序中,函数由函数首部和函数体组成。
6.每个基本结构有一个入口和一个出口,没有死循环和死语句。
7.算法是计算机解决问题所依据的步骤。
习题二一、选择题1.下列数据中属于字符串常量的是( B)。
A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。
A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。
A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。
A.568701400 B.0L C.0.03546287 D.2.654e115.char型常量在内存中存放的是( A)。
A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。
A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。
A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。
A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。
A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/2 10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。
《C语言程序设计》试卷A-带答案一、单项选择题(每题2分,共20分)1、下列有关C语言的叙述中错误的是(D)。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是(C)。
A) MAIN B) _HJ C) 2ong D) LINE13、以下能正确定义一维数组的是(C)。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5};4、执行下列程序段后输出的结果是(C)。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *5、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)。
解析:strcpy(str1,str2); 后,str1[] 里是"XYZ", Z 后面有字符串结束符strcpy(str1,str2); 执行后,函数返回的是str1,因为str1[] 里是新值"XYZ", 而strlen(strcpy(str1,str2)) 就是strlen(str1的新值),所以得3。
strlen 统计到字符串结束符以前,即,不计入字符串结束符。
A) 9 B) 8 C) 5 D) 36、若用数组名作为函数调用的实参,则传递给形参的是(A)。
A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(C)。
期末试卷一一、单项选择题(每题1分,共45分)1.在计算机系统中,可以执行的程序是()A.源程序B.汇编语言程序C.机器语言程序D.ASCII码2.C语言程序的基本单位是()A.程序行B.语句C.函数D.字符3.下列对C语言程序的书写格式的描述,()是正确的。
A.C语言程序中,每行只能写一条语句B.C语言程序书写时通常采用“缩排”方式C.C语言程序的书写中要求每行都要以分号作结尾D.注释行必须放在程序的头或程序的尾4.启动TC V2.0环境后,打开一个C语言源程序的快捷键是()A.F1 B.F2 C.F3 D.F45.C语言源程序文件file.c经系统编译、连接后,生成的文件名为()A.file.c B.file C.file.obj D.file.exe6.下列选项中,合法的C语言标识符是()A._abc*2 B._ch_er C.a-1 D.a7&b7.以下所列的C语言常量中,错误的是()A.0xFF B.1.2e0.5 C.2L D.’\72’8.以下变量x,y,t均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是()A.x/y*z B.x*(1/(y*z))C.x/y*1/z D.x/y/z9.下列程序运行后的输出结果是()main(){ int y=3,x=3;printf(“%d\n”,++x+y++);}A.5 B.8 C.7 D.610.若已正确定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A.1 B.2 C.2.0 D.2.511.在C语言中运算对象必须是整型的运算符是()A.% B./ C.= D.*12.若有以下定义:char a; int b; float c;则表达式a*b-c值的类型为()A.int B.char C.double D.float13.下列正确的C语言赋值语句的是()A.x=3,y=5 B.a=b=1 C.i++; D.y=int(x)14.有如下程序段:int a1,a2;char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是()A.10A 20B<CR> B.10 A 20 B<CR>C.10 A20B<CR> D.10A20 B<CR>15.有如下程序,输入数据:12345m678<CR>后,x的值是()#include <stdio.h>main( ){ int x; float y;scanf("%3d%f",&x,&y);}A.12345 B.123 C.45 D.34516.有如下程序,对应正确的数据输入是()#include<stdio.h>main( ){ float a,b;scanf("%f%f",&a,&b);printf("a=%f,b=%f\n",a,b);}A.2.04<CR> B.2.04,5.67<CR>5.67<CR>C.a=2.04,b=5.67<CR> D.2.045.67<CR>17.有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式是()A.132<CR> B.1,3,2<CR>C.a=1,b=3,c=2<CR> D.a=1 b=3 c=2<CR>18.已知字母A的ASCII码是65,以下程序的执行结果是()#include<stdio.h>main( ){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);}A.A,Y B.65,65 C.65,90 D.65,8919.以下程序的执行结果是()#include<stdio.h>main( ){ int a=2,b=5;printf("a=%%d,b=%%d\n",a,b);}A.a=%2,b=%5 B.a=2,b=5C.a=%%d,b=%%d D.a=%d,b=%d20.最适合解决选择结构“若x>0,则y=1;否则y=0;”的语句是()A.switch B.嵌套的if-else C.if-else D.if21.设整型变量x,y和z的值依次为3,2和1,则下列程序段的输出结果是()if(x>y)x=y;if(x>z)x=z;printf(″%d,%d,%d\n″,x,y,z);A.1,1,1 B.1,2,1 C.1,2,3 D.3,2,122.执行下列程序段后,变量x的值是()int a=8,b=7,c=6,x=1;if(a>6) if(b>7) if(c>8) x=2;else x=3;A.0 B.1 C.2 D.323.运行下列程序的输出结果是()main(){ int a1=1,a2=1,a3=1,a4=1;if (a1>0) a3++;if (a1>a2) a3--;else if (a1= =a2) a3++;else a3--;printf(″%d,%d,%d,%d\n″,a4,a3,a2,a1);}A.1,1,1,1 B.1,2,3,4C.4,3,2,1 D.1,3,1,124.执行下列语句后,整型变量x的值是()switch (x=1) { case 0:x=10;break;case 1:switch (x=2) {case1:x=20;break;case2:x=30;}}A.30 B.20 C.10 D.125.以下说法中正确的是()A.continue和break只能用在循环体中B.continue只能用在循环体中C.break只能用在循环体中D.continue只能用在循环体外26.执行下列程序段的输出是()m=8;while (m>=5) m--,--m,n=m--- m;pritnf (″%d,%d″,m,n);A.2, 0 B.5,-1 C.5,0 D.5,127.设整型变量x的值为1,执行下列循环语句后,变量x 的值是()do x++; while (x++<2);A.2 B.3 C.4 D.528.执行下列语句后,变量k的值是()for (k=0;k<=5;k++) do k++;while (k<5);A.5 B.6 C.7 D.829.下列程序段中,不能使变量m的值等于10的程序段是()A.m=0; B.do m=0;while (m++<9); while (m++<10);C.for (m=8;m<10;m++); D.m=0;L:m++;if (m<10)goto L;30.下列语句中不正确的是()A.static int a[5]={1,2,3,4,5};B.static int a[5]={1,2,3};C.static int a[]={0,0,0,0,0};D.static int a[5]={0*5};31.说明:int a[10]; 则对a数组元素的正确引用是()A.a[10] B.a[3.5] C.a(5) D.a[10-10]32.下面程序的运行结果是()main(){int a[6],i;for(i=1;i<6;i++){a[i]=9*(i-2+4*(i>3))%5;printf(“%2d”,a[i]);}}A.-4 0 4 0 4 B.-4 0 4 0 3C.-4 0 4 4 3 D.-4 0 4 4 033.以下程序的输出结果是()main(){int n[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;printf(“%d\n”,n[1]);}A.1 B.3 C.2 D.434.下面程序的输出是()main(){char s[]=”cat and mouse”;int j=0;while(s[j]!=’\0’) ++j;printf(“%d\n”,j);}A.11 B.0 C.12 D.1335.下面程序的运行结果是()main(){char a[10]=”student”;char b[10]=”boy”;int n;n=strlen(a)+strlen(b);printf(“%d”,n);}A.7 B.10 C.12 D.2036.以下程序的输出结果是()void 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,%d\n",x,y,z);}A.30,20,10 B.10,20,30C.456,567,678 D.678,567,45637.在C语言程序中,当调用函数时,下面说法正确的是()A.实参和形参各占一个独立的存储单元B.实参和形参可以共用存储单元C.可以由用户指定实参和形参是否共用存储单元D.前面都不正确38.下列变量中,哪类变量的生存期和作用域是不一致的()A.自动变量B.定义在文件最前面的外部变量C.静态内部变量D.寄存器变量39.C语言中形参的缺省存储类别是()。
《c语言程序设计》试题库及答案一、选择题1. 下列哪个选项是C语言的标准库函数?A. printfB. scanfC. mainD. All of the above答案:D2. C语言中,用于定义字符串的字符数组的语法是什么?A. char str[] = "Hello";B. char str[] = {"Hello"};C. char str = "Hello";D. char str[] = 'Hello';答案:A3. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. functionC. defD. void答案:A二、填空题1. 在C语言中,定义一个整型变量的正确方式是:________。
答案:int variable_name;2. C语言中,用于计算两个数的和的运算符是:______。
答案:+3. 如果要在C语言中声明一个指向整型的指针,应该使用:________。
答案:int *pointer_name;三、简答题1. 请简述C语言中数组和指针的区别。
答案:数组是一组相同类型的元素的集合,可以通过索引访问每个元素。
指针是一个变量,它存储了另一个变量的内存地址。
数组名可以被用作指向数组首元素的指针,但数组本身是一个固定大小的实体,而指针可以被重新赋值为其他地址。
2. 解释C语言中的结构体(struct)是什么?答案:结构体是一种用户定义的数据类型,它允许将不同的数据类型组合成一个单一的数据结构。
它使得可以创建包含多种数据类型的复杂数据结构。
四、编程题1. 编写一个C语言程序,实现计算两个整数的和,并输出结果。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two integers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("The sum is: %d\n", sum);return 0;}```2. 编写一个C语言程序,实现将一个字符串反转,并输出结果。
C语言程序设计试题及答案(十)一、选择题:1.以下不是C语言的特点的是( )A.C语言简洁、紧凑B.能够编制出功能复杂的程序C.C语言可以直接对硬件进行操作D.C语言移植性好2.以下不正确的C语言标识符是( )。
A.ABC B.abc C.a_bc D.ab.c3.一个c程序的执行是从( ).A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束4.以下不正确的语句(设有intp,q)是( )。
A.P*=3; B.p/=q; C.p十=3; D.p&&=q5.下列四组选项中,均不是C语言关键字的选项是( ).A.define B.getc C.include D.whileif char sanf gotype printf case pow6.下面四个选项中,均是合法整形常量的选项是( ).A.160B.-0xcdfC.-01D.-0x48 a-0xffff 01a 986,012 2e5011 0xe 0668 0x7.下面四个选项中,均是不合法浮点数的选项是( ).A.160.B.123C.-.18D.-e 30.12 2e4.2 123e4 0.234e3 .e5 0.01e38.若有代数式3ae/bc,则不正确的C语言表达式是( )A.a/b/c*e*3B.3* a*e/b/cC.3*a*e/b*cD.a*e/c/b*39.若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为( ).A.7B.8C.9D.1010.若有定义:inta=7;floatx=205,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。
A.2.500000B.2.750000C.3.500000D.0.00000011.sizeof(float)是( )。
阅读程序题【2.1】以下程序的输出结果是。
main(D ){ float a;a=1/100000000;printf("%g",a);}A) 0.00000e+00 B) 0.0 C) 1.00000e-07 D) 0【2.2】下面程序的输出结果是B____。
#include <stdio.h> main( ){ int x=10;{ int x=20;printf ("%d,", x);}printf("%d\n", x);}A) 10,20 B) 20,10 C) 10,10 D) 20,20【2.3】以下程序的输出结果是___B_。
main(){ unsigned int n;int i=-521;n=i;printf("n=%u\n",n);}//变量i中的负号传送给变量n后,因n是无符号数,已不作为负号处理。
A) n=-521 B) n=521 C) n=65015 D) n=102170103【2.4】以下程序的输出结果是。
main(D ){ int x=10, y=10;printf("%d %d\n", x――, ――y);}A) 10 10 B) 9 9 C) 9 10 D) 10 9【2.5】以下程序的输出结果是___B。
main(){ int n=1;printf("%d %d %d\n",n,n++,n--);} // C语言在执行printf()时,对函数中的表达式表列的处理顺序是从后向前,即先处理n- -,再处理n++,最后处理n,A) 1 1 1 B) 1 0 1 C) 1 1 0 D) 1 2 1【2.6】以下程序的输出结果是____。
main(){ int x=0x02ff,y=0x0ff00;printf("%d\n",(x&y)>>4|0x005f);}A) 127 B) 255 C) 128 D) 1【2.7】以下程序的输出结果是____。
main(){ int a=1;char c='a';float f=2.0;printf("%d\n",(!(a==0),f!=0&&c=='A'));}A) 0 B) 1【2.8】下面程序的输出结果是____。
main(){ int a=1,i=a+1;do{ a++ ;}while( !~i++ > 3);printf("%d\n",a);}A) 1 B) 2 C) 3 D) 4【2.9】下面程序的输出结果是____。
main(){ int a=111;a=a^00;printf("%d,%o\n",a,a);}A) 111,157 B) 0,0 C) 20,24 D) 7,7【2.10】下面程序的输出结果是____。
main(){ char s[12]= "a book";printf("%.4s",s);}A) a book! B) a book!<四个空格》C) a bo D) 格式描述错误,输出不确定【2.11】下面程序的输出结果是____。
main(){ int a,b;scanf("%2d%3d",&a,&b);printf("a=%d b=%d\n",a,b);}A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句右错误【2.12】以下程序段的输出结果是。
int a=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c);A) a=10b=50 c=10 B) a=10 b=30 c=10C) a=50 b=30 c=10 D) a=50 b=30 c=50【2.13】以下程序的输出结果是。
main(){ int a=0,b=1,c=0,d=20;if(a) d=d-10;else if(!b)if(!c) d=15;else d=25;printf("d=%d\n",d);}A) d=10 B) d=15 C) d=20 D) d=25【2.14】下面程序的输出结果为。
main(){ int a=1,b=0;switch(a){ case 1: switch (b){ case 0: printf("**0**");break;case 1: printf("**1**");break;}case 2: printf("**2**");break;}}A) **0** B) **0****2** C) **0****1****2** D) 有语法错误【2.15】以下程序的输出结果是。
main(){ char *s="12134211";int v1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){ case '1': v1++;case '3': v3++;case '2': v2++;default: v4++;}printf("v1=%d, v2=%d, v3=%d, v4=%d\n",v1,v2,v3,v4);}A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1C) v1=5,v2=8,v3=6,v4=1 D) v1=4,v2=7,v3=5,v4=8【2.16】下面程序的输出是。
main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1: switch(y){ case 0: a++;break;case 1: b++;break;}case 2: a++;b++;break;}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【2.17】下面程序的输出是____。
main(){ int num=0;while(num<=2){ num++;printf("%d\n",num);}}A) 1 B) 1 C) 1 D) 12 2 23 34【2.18】下面程序的输出结果是____。
main(){ int a=1,b=0;do{ switch(a){ case 1: b=1;break;case 2: b=2;break;default : b=0;}b=a+b;}while(!b);printf("a=%d,b=%d",a,b);}A) 1,2 B) 2,1 C) 1,1 D) 2,2【2.19】从键盘上输入"446755"时,下面程序的输出是____。
#include <stdio.h>main(){ int c;while((c=getchar())!='\n')switch(c -'2'){ case 0:case 1: putchar(c+4);case 2: putchar(c+4);break;case 3: putchar(c+3);default: putchar(c+2);break;}printf("\n");}A) 888988 B) 668966 C) 88898787 D) 66898787【2.20】下面程序的输出结果是____。
main(){ int k=0;char c='A';do{ switch(c++){ case 'A': k++;break;case 'B': k--;case 'C': k+=2;break;case 'D': k=k%2;contiue;case 'E': k=k+10;break;default: k=k/3;}k++;}while(c<'C') ;printf("k=%d\n",k);}A) k=1 B) k=2 C) k=3 D) k=4【2.21】下面程序的输出结果是____。
main(){ int x,i;for(i=1;i<=100;i++){ x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf("%d ",x);}}A) 39 81 B) 42 84 C) 26 68 D) 28 70【2.22】下面程序的输出结果是____。
#include <stdio.h>main( ){ int i,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);A) 20 B) 21 C) 22 D) 23【2.23】假定从键盘上输入"3.6,2.4<回车>",下面程序的输出是____。
#include <math.h>main(){ float x,y,z;scanf("%f,%f",&x,&y);z=x/y;while(1){ if(fabs(z)>1.0){ x=y;y=z;z=x/y;}else break;}printf("%f\n",y);}A) 1.500000 B) 1.600000 C) 2.000000 D) 2.400000【2.24】下面程序的输出结果是____。
main(){ int i,j,x=0;for(i=0;i<2;i++){ x++;for(j=0;j<-3;j++){ if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}A) x=4 B) x=8 C) x=6 D) x=12【2.25】下面程序的输出结果是____。