还剩22页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
一、单项选择题
1.C语言源程序文件经过C编译程序编译连接之后生成一个后缀为__C____的文件 A、”.c”B、“.obj”C、“.exe”D、“.bas”
2.以下选项中不正确的整型常量是_C____ A、12LB、-10C、1900D、123U
3.表达式___C___的值是0 A、3%5B、3/
5.0C、3/5D、35
4.表达式!x0||y0等价于__D___ A、!x0||!y0B、!x0||!y0C、!x0!y0D、!x0!y0
5.若变量已正确定义并赋值,表达式__D____不符合C语言语法 A、43B、+aC、a=b=5D、int
3.14
6.若变量已正确定义,执行语句scanf%d%d%dk1k2k3;时,___B___是正确的输入 A、203040B、203040C、203040D、203040
7.执行语句printf”__D____”2;将得到出错信息 A、%dB、%oC、%xD、%f
8.设变量定义为“ints[]=hello\nworld\n;”,则数组s中有__B____个元素 A、12B、13C、14D、15
9.设变量定义为“inta
[2]={13}*p=a
[0]+1;”,则*p的值是___B__ A、2B、3C、4D、a
[0]+1
10.若变量已正确定义并赋值,表达式-k++等价于__A____ A、-k++B、-k++C、-k+1D、-++k
11.在C语言程序中,在函数内部定义的变量称为__D____ A、全局变量B、全程变量C、外部变量D、内部变量
12.若x是整型变量,表达式x=
10.0/
4.0的值是__D___ A、
2.5B、
2.0C、3D、2
13.对于以下的变量定义,表达式__A____是正确的 structnode{ chars
[10]; intk; }p
[4]; A、p-k=2B、p
[0].s=“abc”C、p
[0]-k=2D、p-s=‘a’
14.下列运算符中,优先级从高到低依次为__D___ A、,!,||B、||,,!C、,||,!D、!,,||
15.下列程序段的输出结果是__B___ int*p*qk=1j=10; p=j;q=k;p=q;*p++; printf%d*q; A、1B、2C、10D、11 16.以下各选项企图说明一种新的类型名,其中正确的是水量(C) Atypedefv1int;Btypedefv2=int; Ctypedefv1intv3;Dtypedefv4:int;
17.以下选项中,非法的字符常量是(C) A‘\t’B‘\17’C)“n”D‘\xaa’
18.以下程序的输出结果是(C) main {intia
[10]; fori=9;i=0;i--a[i]=10-i; printf“%d%d%d”a
[2]a
[5]a
[8]; } A258B741C852D369
19.以下程序的输出结果是(B) main {charst
[20]=“hello\0\t\\\”; printf%d%d\n”strlenstsizeofst; } A99B520C1320D2020
20.以下程序的输出结果是(D) main {intab; fora=1b=1;a=100;a++ {ifb=10break; ifb%3==1 {b+=3;continue;} } printf“%d\n”a; } A101B6C5D4
21.以下程序的输出结果是(D) unionmyun {struct {intxyz;}u; intk; }a; main {a.u.x=4;a.u.y=5;a.u.z=6; a.k=0; printf%d\n”a.u.x; } A4B5C6D0
22.以下程序段的输出结果是A chars[]=\\141\141abc\t; printf%d\nstrlens; A9B12C13D14
23.以下程序的输出结果是B main {charch
[3]
[5]={AAAABBBCC}; printf\%s\\nch
[1]; } AAAAABBBBCBBBCCDCC
24.不合法的main函数命令行参数表示形式是C Amainintachar*c[]Bmainintarcchar**arv Cmainintargcchar*argvDmainintargvchar*argc[]
25.有以下程序 main {char*s[]={onetwothree}*p; p=s
[1]; printf%c%s\n*p+1s
[0]; } 执行后输出结果是C AntwoBtoneCwoneDotwo
26.设有如下说明 typedefstruct {intn;charc;doublex;}STD; 则以下选项中,能正确定义结构体数组并赋初值的语句是A ASTDtt
[2]={{1A62}{2B75}}; BSTDtt
[2]={1A62}2B75}; Cstructtt
[2]={{1A}{2B}}; Dstructtt
[2]={{1A
62.5}{2B
75.0}};
27.若变量c为char类型,则能正确判断出c为小写字母的表达式是(D) Aa=c=zBc=a||c=z Ca=candz=cDc=ac=z
二、填空题
1.设ch是字符型变量,判断ch为英文字母的表达式是: ch=’A’ch=’Z’||ch=’a’ch=’z’__
2.计算下列分段函数的if语句是_ifx0y=1;elseifx=0y=0;elsey=-1;___ 1x0 y=0x=0 -1x0
3.表达式!!5的值是__1____
4.下列程序段的输出结果是___12___ printf%xn0x1910x17;
5.下列程序段的输出结果是__k=4s=6___ intks; fork=0s=0;k10;k++ ifskbreak; elses+=k; printfk=%ds=%dks;
6.下列程序段的输出结果是__15___ #defineMINxyxyx:y printf%d10*MIN1015;
7.下列程序在运行时可能会出错,原因是__指针变量s未赋初值____ #include voidmain {char*s; getss; putss; }
8.下列程序段的输出是___60__ #include intfintm {staticintk=0; ints=0; for;k=m;k++s++; returns; } voidmain {ints1s2; s1=f5; s2=f3; printf%d%d\ns1s2; }
9.下列程序段的输出结果是__fgh___ char*st[]={abcdefghijklmnop}; printf%s*st+1+1;
10.用typedef定义一个含10个元素的整型数组ARR typedefintARR
[10]; 11.以下程序调用findmax函数返回数组中的最大值,请填空 findmaxint*aintn {int*p*s; forp=as=a;p-a if*p*ss=p; return*s; } main {intx
[5]={122113618}; printf%d\nfindmaxx5; }
三、程序段填空题 1.设变量xyz已正确定义和赋值,请仔细阅读程序段A,然后在程序段B中填入正确的内容,使程序段A和程序段B有相同的功能 程序段A程序段B x=x+y; y=x-y; x=x-y; z=x+y;z=x; x=y; y=z; z=x+y; 2.请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能 char*f1chars[]chart[] {intk; fork=0;t[k]!=;k++ s[k]=t[k]; s[k]=; returns; } char*f2char*schar*t {char*p=s; while*p++=*t++!= ; returns; } ===========================================================
一、单项选择题
1.___D___是合法的用户自定义标识符 A、b-bB、floatC、D、_isw
2.若变量已正确定义并赋值,表达式___B___不符合C语言语法 A、a*b/c;B、
3.14%2C、2bD、a/b/c
3.___C__是不正确的字符常量 A、nB、1C、aD、101
4.在C程序中,用___B__表示逻辑值“真” A、1B、非0的数C、非1的数D、大于0的数
5.__C____把x、y定义成float类型变量,并赋同一初值
3.14 A、floatxy=
3.14;B、floatxy=2*
3.14; C、floatx=
3.14y=x=
3.14;D、floatx=y=
3.14;
6.若变量已正确定义,表达式___C___的值不是2 A、23B、11C、a==2D、1^3
7.若变量已正确定义,语句“ifabk=0;elsek=1;”和__C____等价 A、k=ab1:0;B、k=ab; C、k=a=b;D、a=b0:1;
8.设变量定义为“intab;”,执行下列语句时,输入_D____,则a和b的值都是10 scanfa=%db=%dab; A、1010B、1010C、a=10b=10D、a=10b=10
9.下列程序的输出结果是__D___ funintaintbintc {c=a*b;} voidmain {intc; fun23c; printf”%dn”c; } A、0B、1C、6D、无法确定
10.在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___ A、intB、doubleC、voidD、char
11.表达式strlen”hello”的值是___B____ A、4B、5C、6D、7
12.设变量定义为“inta
[4];”,则表达式__D____不符合C语言语法 A、*aB、a
[0]C、aD、a++
13.设变量定义为“intx*p=x;”,则*p相当于__A___ A、pB、*pC、xD、*x
14.若变量已正确定义,_A___不能使指针p成为空指针 A、p=EOFB、p=0C、p=’’D、p=NULL
15.对于以下的变量定义,表达式__D____不符合C语言语法 structnode{ intlen; char*pk; }x={2right}*p=x; A、p-pkB、*p.pkC、*p-pkD、*x.pk
16.有如下程序 intruncintaintb {returna+b;} main0 {intx=2y=5z=8r; r=funcfuncxyz; printf“%\d\n”r; } 该程序的输出的结果是D A12B13C14D15
17.对于基类型相同的两个指针变量之间,不能进行的运算是C AB=C+D-
18.有如下程序 longfibintn {ifn2returnfibn-1+fibn-2; elsereturn2; } main0 {printf“%d\n”fib3; 该程序的输出结果是B A}2B}4C}6D}8
19.有如下定义 structperson{charname
[9];intage;}; strictpersonclass
[10]={“Johu”17 “Paul”19 “Mary”18 “Adam16}; 根据上述定义,能输出字母M的语句是D Aprinft“%c\n”class
[3].mane; Bpfintf“%c\n”class
[3].name
[1]; Cprinft“%c\n”class
[2].name
[1]; Dprintf“%^c\n”class
[2].name
[0];
20.以下所列的C语言常量中,错误的是B A0xFFB
1.2e
0.5C2LD‘\72’
21.有以下程序段 intk=0 whilek=1k++; while循环执行的次数是A A无限次B有语法错,不能执行 C一次也不执行D执行1次
22.以下程序的输出结果是C A0B29C31D无定值 funintxintyintz {z=x*x+y*y;} main {inta=31; fun52a; printf“%d”a; }
23.下列程序段的输出结果是A A2143B1212C1234D2112 voidfunint*xint*y {printf“%d%d”*x*y;*x=3;*y=4;} main {intx=1y=2; funyx; printf“%d%d”xy; }
24.当调用函数时,实参是一个数组名,则向函数传送的是B A数组的长度B数组的首地址 C数组每一个元素的地址D数组每个元素中的值
25.以下程序的输出结果是A A1B2C3D4 longfunintn {longs; ifn==1||n==2s=2; elses=n-funn-1; returns; } main {printf“%ld\n”fun3;}
26.以下程序的输出结果是B A16B2C9D1 #defineSQRXX*X main {inta=16k=2m=1; a/=SQRk+m/SQRk+m; printf“d\n”a; }
27.以下函数返回a所指数组中最小的值所在的下标值 funint*aintn {intij=0p; p=j; fori=j;i ifa[i] returnp; } 在下划线处应填入的是D Ai=pBa[p]=a[i]Cp=jDp=i
二、填空题
1.表示“x≥y≥z”的C表达式是___x=yy=z____
2.下列程序段的输出是__1____ printf%on0101^1;
3.下列程序段的输出是__690____ intk; floats; fork=0s=0;k7;k++ s+=k/2; printf%d%fnks;
4.下列程序段的输出是__525_____ #definefabxa*x+b printf%d%dnf321f65f321;
5.下列程序段的输出是_*#*#____ main {intk; fork=1;k5;k++{ ifk%2printf*; elsecontinue; printf#; } }
6.下列程序段的输出是__58___ #include intfintx {staticy=1; y++; x+=y; returnx; } voidmain {intk; k=f3; printf%d%dnkfk; }
7.下列程序段的输出是___5__ int*p*qk=5j=6; q=k;p=q;q=j; printf%d*p;
8.函数 voidfchars[]chart[] {intk=0; whiles[k]=t[k]k++; } 等价于 voidfchar*schar*t {while_*s++=*t++____; }
9.下列程序段的输出是_nes____ char*a
[2]={onetwo}**p=a; printf%s*p+++1; printf%cn**p-1;
10.下列程序编译后生成t.exe运行tinputoutputzoooil的输出结果是__zoo___ voidmainintargcchar*argv[] {intk; char*p=argv
[1]; fork=2;k ifstrcmpargv[k]p0p=argv[k]; printf%snp; }
11.下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值程序的输出结果是Afterswap53 voidmain {inta=3b=5; swapab; printfAfterswap%d%dab; } swapint*pint*q {intt; t=*p;; *p=*q; *q=t; }
一、选择题(1-40题每题1分41-50题每题2分共60分) 下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分 1计算机的存储器完整的应包括 A软盘、硬盘B磁盘、磁带、光盘 C内存储器、外存储器DRAM、ROM 2计算机中运算器的作用是 A控制数据的输入/输出B控制主存与辅存间的数据交换 C完成各种算术运算和逻辑运算D协调和指挥整个计算机系统的操作 3软磁盘处于写保护状态时,其中记录的信息 A绝对不会丢失 B不能被擦除,但能追加新信息 C不能通过写磁盘操作被更新 D不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除 4光盘根据基制造材料和记录信息的方式不同,一般可分为 ACD、VCD BCD、VCD、DVD、MP3 C只读光盘、可一次性写入光盘、可擦写光盘 D数据盘、音频信息盘、视频信息盘 5在计算机系统中,可执行程序是 A源代码B汇编语言代码C机器语言代码DASCII码 6计算机软件系统包括 A操作系统、网络软件B系统软件、应用软件 C客户端应用软件、服务器端系统软件D操作系统、应用软件和网络软件 7目前,一台计算机要连入Internet,必须安装的硬件是 A调制解调器或网卡B网络操作系统 C网络查询工具DWWW浏览器 8在多媒体计算机系统中,不能存储多媒体信息的是 A光盘B磁盘C磁带D光缆 9要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是 ATYPEa*.*BTYPEabc.exe CTYPEpro.cPRNDTYPEabc.txt 10下列更改文件名的命令中正确的是 ARENA:file1C:F1BRENAMEA:A:file1C:F1 CRENA:file1F1DRENA:file1\SUB\F1 11已知A盘为DOS系统启动盘,只有A:\DOS下有自动批处理文件,其中内容为 CD\DOS MDUSER CDUSER 由A盘启动DOS系统后,A盘的当前目录是 A\DOSB\DOS\USERC\D\USER 12MS-DOS是 A分时操作系统B分布式操作系统 C单用户、单任务操作系统D单用户、多任务操作系统 13在Windows操作系统中,不同文档之间互相复制信息需要借助于 A剪切板B记事本C写字板D磁盘缓冲器 14在Windows操作系统中 A同一时刻可以有多个活动窗口 B同一时刻可以有多个应用程序在运行,但只有一个活动窗口 C同一时刻只能有一个打开的窗口 DDOS应用程序窗口与Windows应用程序窗口不能同时打开着 15下列叙述中正确的是 A所有DOS应用程序都可以在Windows操作系统中正确运行 B所有DOS应用程序都不能在Windows操作系统中正确运行 C大部分DOS应用程序可以在Windows操作系统中正确运行 D为DOS
5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行 16下列叙述中正确的是 AC语言编译时不检查语法 BC语言的子程序有过程和函数两种 CC语言的函数可以嵌套定义 DC语言所有函数都是外部函数 17以下所列的C语言常量中,错误的是 A0xFFB
1.2e
0.5C2LD\72 18下列选项中,合法的C语言关键字是 AVARBcherCintegerDdefault 19以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是 Ax/y*zBx*1/y*zCx/y*1/zDx/y/z 20若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 A-3B9C-12D6 21设x、y、t均为int型变量,则执行语句x=y=3;t=++x||++y;后,y的值为 A不定值B4C3D1 22若变量已正确说明为float类型,要通过语句scanf%f%f%fabc;给a赋于
10.0,b赋予
22.0,c赋予
33.0,不正确的输入形式是 A10回车B
10.
022.
033.0回车 22回车 33回车 C
10.0回车D1022回车
22.
033.0回车33回车 23若执行以下程序时从键盘上输入9,则输出结果是 A11B10C9D8 Main0 {intn; scanf%dn; ifn++10printf%d\nn; elseprintf%d\nn--; } 24若a、b、c
1、c
2、x、y、均是整型变量,正确的switch语句是 Aswicha+b;Bswitcha*a+b*b {case1:y=a+b;break;{case3: case0:y=a-b;break;case1:y=a+b;break; }case3:y=b-abreak; } CswitchaDswitcha-b {casec1:y=a-b;break{default:y=a*b;break casec2:x=a*d;breakcase3:case4:x=a+b;break default:x=a+b;case10:case11:y=a-b;break; }} 25有以下程序段 intk=0 whilek=1k++; while循环执行的次数是 A无限次B有语法错,不能执行 C一次也不执行D执行1次 26以下程序执行后sum的值是 A15B14C不确定D)0 min {intisum; fori=1;i6;i++sum+=i; printf%d\nsum; } 27有以下程序段 intx=3 do {printf%dx-=2;} while!--x; 其输出结果是 A1B30C1-2D死循环 28若变量c为char类型,能正确判断出c为小写字母的表达式是 Aa=c=zBc=a||c=z Ca=candz=cDc=ac=z 29以下所列的各函数首部中,正确的是 Avoidplayvar:Integervarb:Integer Bvoidplayintab Cvoidplayintaintb DSubplayaasintegerbasinteger 30以下程序的输出结果是 A0B29C31D无定值 funintxintyintz {z=x*x+y*y;} main {inta=31; fun52a; printf%da; } 31下列程序段的输出结果是 A2143B1212C1234D2112 voidfunint*xint*y {printf%d%d*x*y;*x=3;*y=4;} main {intx=1y=2; funyx; printf%d%dxy; } 32下列程序的输出结果是 A非法B)a
[4]的地址C)5D)3 main {chara
[10]={9876543210}*p=a+5; printf%d*--p; } 33下列程序的运行结果是 A63B36C编译出错D00 voidfunint*aint*b {int*k; k=a;a=b;b=k; } main {inta=3b=6*x=a*y=b; funxy; printf%d%dab; } 34下面程序的输出结果是 A0B1C10D9 main {inta[]={1234567890}*p; p=a; printf%d\n*p+9; } 35当调用函数时,实参是一个数组名,则向函数传送的是 A数组的长度B数组的首地址 C数组每一个元素的地址D数组每个元素中的值 36设有以下说明语句 structex {intx;floaty;charz;}example; 则下面的叙述中不正确的是 Astruct结构体类型的关键字Bexample是结构体类型名 Cxyz都是结构体成员名Dstructex是结构体类型 37以下只有在使用时才为该类型变量分配内存的存储类说明是 Aauto和staticBauto和register Cregister和staticDextern和register 38若fp是指向某文件的指针,且已读到文件末尾,则库函数feoffp的返回值是 AEOFB-1C非零值DNULL 39以下程序的输出结果是 A20B21C22D)23 main {intika
[10]p
[3]; k=5; fori=0;i10;i++a[i]=i; fori=0;i3;i++p[i]=a[i*i+1]; fori=0;i3;i++k+=p[i]*2; printf%d\nk; } 40以下程序的输出结果是 A159B147C357D)369 main {intix
[3]
[3]={123456789}; fori=0;i3;i++printf%dx[i][2-i]; } 41以下程序的输出结果是 A18B19C20D)21 main {inta
[3]
[3]={{12}{34}{56}}ijs=0; fori=1;i3;i++ forj=0;j=i;j++s+=a[i][j]; printf%dns; } 42以下程序的输出结果是 AABCDBABCDCEFGDEFGH FGHEFGJKIJKL KLIJO M main {charw[]
[10]={ABCDEFGHIJKLMNOP}k; fork=1;k3;k++printf%s\nw[k]; } 43当执行下面的程序时,如果输入ABC,则输出结果是 AABC6789BABC67C12345ABC6DABC456789 #includestdio.h #includestring.h main {charss
[10]=12345; getsss;strcatss6789;printf%s\nss; } 44假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入 PROGABCDEFGHIJKL回车,则输出结果为 AABCDEFGBIJHLCABCDEFGHIJKLDIJKLABCDEFGH mainintargcchar*argv[] {while--argc0printf%sargv[argc]; printf\n; } 45以下程序的输出结果是 A1B2C3D4 longfunintn {longs; ifn==1||n==2s=2; elses=n-funn-1; returns; } main {printf%ld\nfun3;} 46以下程序的输出结果是 A16B2C9D1 #defineSQRXX*X main {inta=16k=2m=1; a/=SQRk+m/SQRk+m; printfd\na; } 47若定义了以下函数 voidf…… {…… *p=double*malloc10*sizeofdouble; …… } p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是 Adouble*pBfloat**pCdouble**pDfloat*p 48以下程序的输出是 A10B11C51D60 structst {intx;int*y;}*p; intdt
[4]={10203040}; structstaa
[4]={50dt
[0]60dt
[0]60dt
[0]60dt
[0]}; main {p=aa; printf%d\n++p-x; } 49假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是 Afreeq;p-next=q-next; B*p.next=*q.next;freeq; Cq=*q.next;*p.next=q;freeq; Dq=q-next;p-next=q;p=p-next;freep; 50以下程序的输出结果是 A0B1C2D3 main {intx=
0.5;charz=a; printf%d\nx1zz;}
二、填空题每空2分,共40分 请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分 1计算机机领域中,通常用英文单词Byte表示【1】 2在DOS环境下,自动批处理的文件名为【2】 3要将当前盘当前目录下所有扩展名为.TXT的文件内容在打印机上打印输出,应使用的单条DOS内部命令为【3】 4在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【4】操作实现窗口的移动 5在Windows环境下,可以将窗口最小化为【5】 6以下程序的输出结果是【6】 main {inta=1b=2; a=a+b;b=a-b;a=a-b; printf%d%d\nab; } 7下列程序的输出结果是
16.00,请填空 main {inta=9b=2; floatx=【7】y=
1.1z; z=a/2+b*x/y+1/2; printf%
5.2f\nz; } 8用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空 st=char*【8】; 9下列程序段的输出结果是【9】 main {charb[]=Helloyou; b
[5]=0; printf%s\nb; } 10下列程序段的输出结果是【10】 intn=c; switchn++ {default:printferror;break; casea:caseA:caseb:caseB:printfgood;break; casec:caseC:printfpass; cased:caseD:printfwarn; } 11以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句 voidfunint*xint*y {……} main {inta=10b=20; 【11】;/定义变p*/ p=fun;pab; …… } 12下列程序的输出结果是【12】 voidfunint*n {while*n--; printf%d++*n; } main {inta=100; funa; } 13以下程序的输出结果是【13】 main {intarr[]={30252015105}*p=arr; p++; printf%d\n*p+3; } 14以下程序用来输出结构体变量ex所占存储单元的字节数,请填空 structst {charname
[20];doublescore;}; main {structstex; printfexsize:%d\nsizeof【14】; } 15下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中请填空 #includestdio.h FILE*fp; {charch; iffp=fopen【15】==NULLexit0; whilech=getchar!=@fputcchfp; fclosefp; } 16若变量n中的值为24,则prnt函数共输出【16】行,最后一行有【17】个数 voidprntintnintaa[] {inti; fori=1;i=n;i++ {printf%6daa[i]; if!i%5printf\n; } printf\n; } 17以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值请填空 #defineN3 #defineM4 voidLineMaxintx[N][M] {intijp; fori=0;i {p=0; forj=1;j ifx[i][p] printfThemaxvalueinline%dis%d\ni【19】; } } main {intx[N][M]={157426438231}; 【20】 } 一.选择题 1.一个C语言程序的执行是从a a第一个函数开始,直到最后一个函数结束.bmain函数开始,直到main函数结束 c第一个语句开始,直到最后一个语句结束dmain函数开始,直到最后一个函数结束 2.运算表达式!59||610的结果为(b)A1B0C12D10 3.设n=3;则n++的结果是(b)A2B3C4D5 4.已知字母A的ASCII码是65,以下程序的执行结果是(d) main {charc1=’A’c2=’Y’; printf“%d%d\n”c1c2; }AAYB6565C6590D6589 5.设x=2,表达式x*=3+2的结果x为b A5 B10 C6D 6.C语言中规定函数的返回值的类型由(d) Areturn语句中的表达式类型决定B调用该函数时的主调函数类型所决定 C调用该函数时系统临时决定D在定义该函数时所指定的函数类型所决定 7.设有说明语句inta=1b=0;则执行以下语句后输出为(b) switcha {case1:switchb {case0:printf“**0**”;break; case1:printf“**1**”.break; } case2:printf“**2**”;break; }A**0**B**0****2**C**0****1****2**D有错 8.选择下列程序的运行结果d main {intk=4m=1p; p=funckm; p=funckm; printf“%d”p; } funcintaintb {staticintm=0i=2; i+=m+1; m=i+a+b; returnm; }A14B15C16D17 .若有以下说明和语句d structworker{ intno; char*name; }work*p=work; 则以下引用方法不正确的是Awork.noB*p.noCp-noDwork-no 10.数组名作为参数传给函数,作为实际参数的数组名被处理a 为 A该数组长度 B该数组元素个数C该函数中各元素的值 D该数组的首地址 一.阅读程序,写出运行结果
1.main {inta=1b=4c=2; floatx=
10.5y=
4.
0.z; z=a+b/c+sqrtdoubley*
1.2/c+x; printf“%f\n”z; }
2. main {staticinta
[4]
[5]={{12340}{22000}{34500}{60000}}; intjk; forj=0;j4;j++ {fork=0;k5;k++ {ifa[j][k]==0break; printf“%d”a[j][k]; } } printf“\n”; }
3.main {char*a
[4]={”Tokyo””Osaka””Sapporo””Nagoya”}; char*pt; pt=a; jprintf“%s”*a+2; }
4.main {inta
[6]
[6]ij; fori=1;i6;i++ forj=1;j6;j++ a[j]=i*j; fori=1;i6;i++ forj=1;j6;j++ printf%2da[j]; printf“\n”; } }
5.main {inta[]={1234}ijs=0; j=1; fori=3;i=0;i-- {s=s+a*j; j=j*10; } printf“s=%d\n”s; } .填写程序
1.已知能被4整除而不能被100整除的或者能被400整除的年份是闰年,则闰年的判断条件程序如下 main {intyearleap; scanf“%d”year; ifyear%4==0year%100!=0||year%400==0 leap=1; elseleap=0; ifleap==1 printf“是闰年”; elseprintf“不是闰年”; 2.给定一3x4的矩阵,求出其中的最大元素值,及其所在的行列号 main {intijrow=0colum=0max; staticinta
[3]
[4]={{1234}{9876}{10-10-44}}; ; fori=0;i=2;i++ forj=0;j=3;j++ { ; ; } printf“%d%d”rowcolum; } 习题答案 一.
1.A
2.B
3.B
4.D
5.B
6.D
7.B
8.D
9.D
10.A 二.
1.
13.700000
2.1234223456
3.Sapporo
4.12345 246810 3691215 48121620 510152025
5.0 三.
1. year%4==0year%100!=0||year%400==0 leap==1
2.max=a
[0]
[0]; ifa[j]maxmax=a[j]; row=icolum=j;C语言期末考试试题及答案
1.规定一个工人工作时间一月160h,每小时工资5元,加班的话,每小时增加4元,请编程计算此工人一个月的工资,工作时间由键盘输入main{inttsalary;systemcls;printfPleaseinputthetime:\n;scanf%dt;ift=160salary=t*5;elsesalary=160*5+t-160*9;printfThesalaryis:%d\nsalary;}
2.输入30个整数,统计出其中正整数个数,负整数个数及0的个数,并分别求出所有负整数与所有正整数的和,最后求出全部数字绝对值之和#includemath.hmain{inta
[30]p=0n=0z=0sum=0isumn=0sump=0;systemcls;printfPleaseintput30numbers:\n;fori=0;i30;i++scanf%da[i];fori=0;i30;i++{ifa[i]0p=p++;sump=sump+a[i];elseifa[i]0n=n++;sumn=sumn+a[i];elsez=z++;}fori=0;i30;i++sum=sum+fabsa[i];printfTheplusnumberandtheadditionis:%d%d\npsump;printfThenagativenumberandtheadditionis:%d%d\nnsumn;printfThezeronumberis:%d\nz;printfThesumoftheabsolutevalueis:%d\nsum;}
3.s=a+a*a+a*a*a+...+a*a*...*an个ak=sqrts;t=1-1/2+1/3-1/4+...+1/ka和n值由键盘输入,求t值#includemath.hmain{intks=0niaj=1q=1;floatt=0;systemcls;printfPleaseinputthevalueofaandn:\n;scanf%d%dan;fori=0;i{j=a*j;s=s+j;}k=sqrts;fori=1;i=k;i++{t=t+q*
1.0/i;q=-q;}printfThevalueofsis:%d\ns;printfThevalueofkis:%d\nk;printfthevalueoftis:%f\nt;}
4.n!,sum=n!+n+1!+n+2!+...+m!nm值由键盘输入要求调用函数调用函数:facintn{intisu=1;fori=1;i=n;i++su=su*i;returnsu;}main{intmni;longintsum=0;systemcls;printfPleaseinputthevalueofnandm:\n;scanf%d%dnm;fori=0;i=m-n;i++sum=sum+facn+i;printfSumis:%ldsum;}
5.输入20个学生的成绩,求出其中大于平均成绩学生的人数,并对成绩按从高到低进行排序main{intp=20ik=0j;floatavea
[20]tsum=0;systemcls;printfPleaseinputthescoreofthestudents:\n;fori=0;iscanf%fa[i];fori=0;isum=sum+a[i];ave=sum/p;fori=0;i{ifa[i]avek++;}fori=0;iforj=1;jifa[j-1]{t=a[j-1];a[j-1]=a[j];a[j]=t;}printfstudentsabovetheaveragescoreandtheaveragescore:%d%.1f\nkave;printfThescorefromuptodownis:\n;fori=0;iprintf%.1f\ta[i];}。