欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言试题及答案.pdf

    • 资源ID:73127135       资源大小:996.13KB        全文页数:31页
    • 资源格式: PDF        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言试题及答案.pdf

    1 大学 C 语言考试题库 第 1 章 C 语言概述习题 1.单项选择题 (1)C 语言是在 B 语言的基础上产生的。A.A B.B C.D D.E (2)在 C 语言中,每个语句必须以 D 结束。A.回车符 B.冒号 C.逗号 D.分号 (3)标识符和关键字间,要用 C 隔开。A.回车符 B.冒号 C.空格 D.分号 (4)用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将(B )。A.生成可执行目标文件 B.生成目标文件 C.输出运行结果 D.自动保存源文件 (5)下列说法中正确的是(B )。A.由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B.由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C.由于 C 程序是高级语言程序,因此输入后即可执行 D.由于 C 程序是高级语言程序,因此它由命令组成 (6)下列说法中正确的是(A )。A.C 语言程序由主函数和 0 个或多个函数组成 B.C 语言程序由主程序和子程序组成 C.C 语言程序由子程序组成 D.C 语言程序由过程组成 (7)下列说法中错误的是(D )。A.主函数可以分为两个部分:主函数说明部分和主函数体 B.主函数可以调用任何非主函数的其他函数 C.任何非主函数可以调用其他任何非主函数 D.程序可以从任何非主函数开始执行 2.填空题 (1)C 语言只有 32 个关键字和 9 种控制语句。(2)C 语言是一种“中级语言”,既具有 高级语言 的特点又具有 低级语言 的特点;既适合于开发系 2 统软件又适合于编写应用程序。(3)每个源程序有且只有一个 主 函数,系统总是从该函数开始执行 C 语言程序。(4)在 C 语言程序中允许出现的字符集是 ASCII 码字符集。(5)C 语言的程序中有特殊含义的英语单词称为 保留字 。(6)C 语言标识符的长度是前 8 位有效。(7)C 语言中,标识符的定义规则是 以字母或下划线为开头 。(8)C 语言程序的注释可以出现在程序中的任何地方,它总是以/*符号作为开始标记,以 */符号作为结束标记。第 2 章 数据类型运算符和表达式习题 1.单项选择题 (1)以下选项中,正确的 C 语言整型常量是 D 。A.32L B.510000 C.-1.00 D.567 (2)以下选项中,D 是不正确的 C 语言字符型常量。A.a B.x41 C.101 D.a (3)在 C 语言中,字符型数据在计算机内存中,以字符的 C 形式存储。A.原码 B.反码 C.ASCII 码 D.BCD 码 (4)字符串的结束标志是 C 。A.0 B.0 C.0 D.0 (5)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为 B 。A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算 C.关系运算、赋值运算、算术运算 D.关系运算、算术运算、赋值运算 (6)逻辑运算符中,运算优先级按从高到低依次为 D 。A.&,!,|B.|,&,!C.&,|,!D.!,&,|(7)表达式!x|a=b 等效于 D 。A.!(x|a)=b)B.!(x|y)=b C.!(x|(a=b)D.(!x)|(a=b)(8)设整型变量 m,n,a,b,c,d 均为 1,执行(m=ab)&(n=cd)后,m,n 的值是 A 。A.0,0 B.0,1 C.1,0 D.1,1 (9)int b=0,x=1;执行语句 if(x+)b=x+1;后,x,b 的值依次为 A 。3 A.2,3 B.2,0 C.3,0 D.3,2 (10)设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是 B 。A.3 B.0 C.9 D.-12 (11)在以下一组运算符中,优先级最低的运算符是 D 。A.*B.!=C.+D.=(12)设整型变量 i 值为 2,表达式(+i)+(+i)+(+i)的结果是 B 。A.6 B.12 C.15 D.表达式出错 (13)若已定义 x 和 y 为 double 类型,则表达式 x=1,y=x+3/2 的值是 C 。A.1 B.2 C.2.0 D.2.5 (14)sizeof(double)的结果值是 A 。A.8 B.4 C.2 D.出错 (15)设 a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d 的结果为 D 。A.4 B.3 C.2 D.1 (16)设 a 为整型变量,不能正确表达数学关系:10a15 的 C 语言表达式是 A 。A.10a10&a15 D.!(a=15)(17)设 f 是实型变量,下列表达式中不是逗号表达式的是 D 。A.f=3.2,1.0 B.f0,f0 D.f=(3.2,1.0)(18)设 ch 是 char 型变量,其值为 A,则下面表达式的值是 B 。ch=(ch=A&ch D.*(22)PC 机中,n在内存占用的字节数是 A 。A.1 B.2 C.3 D.4 (23)字符串ABC在内存占用的字节数是 B 。4 A.3 B.4 C.6 D.8 (24)要为字符型变量 a 赋初值,下列语句中哪一个是正确的 B 。A.char a=3;B.char a=3;C.char a=%;D.char a=*;(25)下列不正确的转义字符是 C 。A.B.C.074 D.0 2.填空题(1)C 语言中的逻辑值“真”是用 非 0 表示的,逻辑值“假”是用 0 表示的。(2)符号常量的定义方法是#define N 10 。(3)无符号基本整型的数据类型符为 unsigned int ,双精度实型数据类型符为 double ,字符型数据类型符为 char。(4)设 c=w,a=1,b=2,d=-5,则表达式 x+1c,y!=c+2,-a-5*b=d+1,b=a=2 的值分别 为 1 、0 、1 、表达式错误 。(5)设 float x=2.5,y=4.7;int a=7;,表达式 x+a%3*(int)(x+y)%2/4 的值为 2.5 。(6)判断变量 a、b 的值均不为 0 的逻辑表达式为 (a!=0)&(b!=0)。(7)求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 4,4,10,6 。(8)求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为 18,3,3 。(9)数学式 a/(b*c)的 C 语言表达式 a/(b*c)。第 3 章 顺序结构程序设计习题 1.选择题(1)printf(f=%3.2f%,3.478);的输出结果是 A 。A.f=3.48%B.f=3.5%C.f=3.48%D.f=347.8%(2)printf(%c,%d,a,a);的输出结果是 A 。A.a,97 B.a 97 C.97,a D.97 a (3)scanf(%c,&a);若要给变量输入大写字母 A,则以下正确的输入是 B 。A.A B.A C.A D.以上都不对 (4)若一个 int 类型的数据占 2 字节,则程序段:int x=-1;printf(%u,%d,x,x);的输出结果是 A 。A.65535,-1 B.-1,65535 C.32767,32768 D.32768,32767 (5)在 TC 中,getchar、putchar、printf、scanf 四个函数,均包含在头文件 B 5 中。A.math.h B.stdio.h C.stbio.h D.stdlib.h (6)复合语句是用 C 括起来的语句组。A.()B.C.D.(7)下列格式符中,哪一个可以用于以八进制形式输出整数 C 。A.%d B.%8d C.%o D.%ld (8)下列格式符中,哪一个可以用于以十六进制形式输出整数 B 。A.%16d B.%8x C.%d16 D.%d (9)a 是 int 类型变量,c 是字符变量,下列输入语句中哪一个是错误的 B 。A.scanf(%d,%c,&a,&c);B.scanf(%d%c,a,c);C.scanf(%d%c,&a,&c);D.scanf(d=%d,c=%c,&a,&c);(10)要使 double x;long a;的数据能正确的输出,输出语句应是 D 。A.printf(%d,%f,a,x);B.printf(%d,%1f,a,x);C.scanf(%1d,%1f,&a,&x);D.printf(%1d,%lf,a,x);2.程序改错题(以下各个程序段均有 5 个错误,请先找出错误的位置,然后再改正)(1)以下程序的功能是,从键盘输入一个字符并鸣笛输出。#include stdio.h mian()/main()char c/char c;getchar(c);/c=getchar();putchar(007);/*鸣笛*/c=putchar();/putchar(c);/(2)以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。main/main()int a,b,s,l;/double a,b,s,l;scanf(%d,%d,&a,&b);/scanf(%lf,%lf,&a,&b);s=a*b;6 l=a+b;/l=(a+b)*2;printf(l=%f,s=%fn,l);/printf(l=%lf,s=%lfn,l,s);3.写出程序运行结果(1)main()int a,b;scanf(%2d%*2s%2d,&a,&b);printf(%dn,a+b);运行时输入:12345678/输出:68(2)main()int a=3,b=5,x,y;x=a+1,b+6;y=(a+1,b+6);printf(x=%dny=%dn,x,y);输出:x=4 y=11 第 4 章 选择结构程序设计习题 1.单项选择题 (1)选择结构程序设计的特点是_B_。A.自上向下逐个执行 B.根据判断条件,选择其中一个分支执行 C.反复执行某些程序代码 D.以上都是 (2)假定所有变量均已正确定义,下列程序段运行后 x 的值是_B_。a=b=c=0,x=35;7 if(!a)x-;else if(b);if(c)x=3;else x=4;A.34 B.4 C.35 D.3 (3)下面的程序片段所表示的数学函数关系是_ A_。if(x0)y=1;else y=0;(4)下列各语句序列中,能够且仅输出整型变量 a、b 中最大值的是(C)。A.if(ab)printf(%dn,a);printf(%dn,b);B.printf(%dn,b);if(ab)printf(%dn,a);C.if(ab)printf(%dn,a);else printf(%dn,b);D.if(a0)y=1;else if(x=0)y=0;else y=1;printf(%d,y);A.1 B.5 C.0 D.2 (6)程序段 int x=5,y=8,max;max=(xy)?x:y;printf(%d,max);的输出结果是 B 。A.5 B.8 C.3 D.13 (7)程序段 int x=3,a=1;switch(x)case 4:a+;case 3:a+;case 2:a+;case 1:a+;printf(%d,a);的输出结果是 D 。A.1 B.2 C.3 D.4 (8)下列语句应将小写字母转换为大写字母,其中正确的是(B )。A.if(ch=a&ch=a&ch=a&cha&chz)?ch-32:ch;2.阅读程序,写出运行结果 (1)void main()int a=10,b=4,c=3;if(ab)a=b;if(ac)a=c;printf(%d,%d,%dn,a,b,c);输出:10,4,3(2)void main()int x=100,a=10,b=20,ok1=5,ok2=0;if(ab)if(b!=15)if(!ok1)x=1;else if(ok2)x=10;else x=-1;printf(%dn,x);输出:-1;(3)int k,a=1,b=2;k=(a+=b)?2:3;printf(%d,k);输出:3 (4)void main()int s=1,k=0;switch(s)case 1:k+=1;case 2:k+=2;default:k+=3;printf(“%d”,k);输出:6 (5)void main()int s=1,k=0;switch(s)case 1:k+=1;break;case 2:k+=2;break;default:k+=3;printf(“%d”,k);输出:1 9 第 5 章 循环结构程序设计习题 1.单项选择题 (1)for(i=1;i9;i+=1);该循环共执行了 B 次。A.7 B.8 C.9 D.10 (2)int a=2;while(a=0)a-;该循环共执行了 A 次。A.0 B.1 C.2 D.3 (3)执行完循环 for(i=1;i100;i+);后,i 的值为 B 。A.99 B.100 C.101 D.102 (4)以下 for 语句中,书写错误的是 D 。A.for(i=1;i5;i+);B.i=1;for(;i5;i+);C.for(i=1;i5;)i+;D.for(i=1,i5,i+);(5)C 语句,在循环条件初次判断为假,还会执行一次循环体。A.for B.while C.do-while D.以上都不是 (6)循环结构的特点是 C 。A.从上至下,逐个执行 B.根据判断条件,执行其中一个分支 C.满足条件时反复执行循环体 D.以上都对(7)i、j 已定义为 int 类型,则以下程序段中内循环体的执行次数是 A 。for(i=5;i;i-)for(j=0;j4;j+)A.20 B.24 C.25 D.30 (8)C 语言 while 语句中,用于条件的表达式是 D 。A.关系表达式 B.逻辑表达式 C.算术表达式 D.任意表达式 (9)int a=1,x=1;循环语句 while(a10)x+;a+;的循环执行 D 。A.无限次 B.不确定次 C.10 次 D.9 次 (10)下列程序段执行后 s 的值为 A 。10 int i=1,s=0;while(i+)if(!(i%3)break;else s+=i;A.2 B.3 C.6 D.以上均不是 2.填空题 (1)三种循环语句是 等价 价的。(2)当循环体中的 switch 语句内有 break 语句,则只跳出 swicth 语句。同样,当 switch 语句中有循环语句,内有 break 语句,则只跳出 循环 语句。(3)循环体执行遇到 continue 语句时 跳过本次循环进入下次循环 。(4)下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出 1,否则输出 0,请为程序填空。void main()int i,x,y=1;scanf(%d,&x);for(i=2;i=x/2;i+)if(x%i=0 )y=0;break;printf(%dn,y);(5)输入 N 个实数,输出其中的最大值、最小值。#include void main()int n,i;float no1,nmax,nmin;scanf(%d,&n);scanf(%f,&no1);nmax=no1;nmin=no1;for(i=2;inmax)nmax=no1;11 if(no1nmin)nmin=no1;printf(MAX=%f MIN=%fn,nmax,nmin);(6)输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。#include void main()char ch;int s1=0,s2=0;while(ch=getchar()!=n)if(ch=0&ch=a&ch=A|ch0;y-)if(y%3=0)printf(%d,-y);continue;输出:852(2)main()int k,n,m;n=10;m=1;k=1;while(k+0);输出:i=3 i=1 i=-1 (4)#include void 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;break;case E:k=k*10;break;default:k=k/3;k+;while(cG);printf(k=%dn,k);输出:8(5)输入数据:2,4#include void main()int s=1,t=1,a,n;int i;scanf(%d,%d,&a,&n);for(i=1;in;i+)t=t*10+1;s=s+t;s*=a;printf(SUM=%dn,s);输出:2468 4.程序改错(1)以下程序是显示200,300所有能被 7 整除的数,每行显示 5 个数,此程序有 5 处错。main()int i,n=0;/*n 用来记录每行已打印数的个数*/while(i300)/while(i=200)/i+;13 if(i%7=0)/if(i%7!=0)break;/continue;printf(%5d,i);n=n+1;if(n=5)/*满 5 个换行*/if(n=5)printf(n);n=0;(2)以下程序是求 1!+2!+3!+4!+5!+6!+7!的值,其中有 3 处错误。main()int i,s,t=0;/long s=0,t=1;/int i;for(i=1;i=7;i+)s=0;/去掉该语句 t=t*i;s=s+t;printf(sum=dn,s);/printf(“sum=%ld”,s);第 6 章 函数习题 1.单项选择题 (1)C 语言总是从 A 函数开始执行。A.main B.处于最前的 C.处于最后的 D.随机选一个 (2)函数在定义时,省略函数类型说明符,则该函数值的类型为 A 。14 A.int B.float C.long D.double (2)以下 B 函数,真正地没有返回值。A.int a()int a=2;return(a);B.void b()printf(c);C.int a()int a=2;return a;D.以上都是 (3)在 C 语言中,有关函数的说法,以下正确的是 C 。A.函数可嵌套定义,也可嵌套调用 B.函数可嵌套定义,但不可嵌套调用 C.函数不可嵌套定义,但可嵌套调用 D.函数不可嵌套定义,也不可嵌套调用 (4)以下函数调用语句中,含有实参的个数为 B 。fun(2,3),(4,5+6,7);A.1 B.2 C.5 D.6(5)函数调用可以在 D 。A.函数表达式中 B.函数语句中 C.函数参数中 D.以上都是 (6)被调函数返回给主调函数的值称为 C 。A.形参 B.实参 C.返回值 D.参数 (7)D ,可以不进行函数类型说明。A.被调函数的返回值是整型或字符型时 B.被调函数的定义在主调函数定义之前时 C.在所有函数定义前,已在函数外预先说明了被调函数类型 D.以上都是 (8)被调函数通过 D 语句,将值返回给主调函数。A.if B.for C.while D.return (9)被调函数调用结束后,返回到 B 。A.主调函数中该被调函数调用语句处 B.主函数中该被调函数调用语句处 C.主调函数中该被调函数调用语句的前一语句 D.主调函数中该被调函数调用语句的后一语句(10)以下对 C 语言函数的有关描述中,正确的是 A 。A.在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B.C 函数既可以嵌套定义又可递归调用 C.函数必须有返回值,否则不能使用函数 D.C 程序中有调用关系的所有函数必须放在同一个源程序文件中 (11)C 语言中函数的隐含存储类型是 A 。A.auto B.static C.extern D.无存储类型 15(12)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是 A 。A.return 这两个数 B.形参用两个元素的数组 C.形参用两个这种数据类型的指针 D.用两个全局变量 2.填空题 (1)变量的作用域主要取决于变量 定义的位子 ,变量的生存期既取决于变量 存储类型 ,又取决于变量 存储方式 。(2)说明变量时,若省略存储类型符,系统默认其为 整形 存储类别,该存储类别的类型符为:int 。(3)静态型局部变量的作用域是 静态局部变量定义的复合语句或函数体内 ,生存期是 整个程序运行期内 。(4)函数中的形参和调用时的实参都是数组名时,传递方式为 地址传递 ,都是变量时,传递方式为 值传递 。(5)函数的形式参数的作用域为 整个函数体内 ,全局的外部变量和函数体内定义的局部变量重名时,函数体内定义的局部 变量优先。(6)若自定义函数要求返回一个值,则应在该函数体中有一条 return 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 void 。(7)若函数的形式参数是指针类型,则实参可以是 数组名 、地址 或 指针变量 。(8)函数的参数为 char*类型时,形参与实参结合的传递方式为 地址传递 。(9)函数的实参为常量时,形参与实参结合的传递方式为 值传递 。(10)对数组按值从大到小的顺序排序后输出,请填空。#include void main()float a7=2,6,3,8,3,12,9;int i;void sort(float*,int);sort(a,7);for(i=0;i7;i+)printf(%f,ai);printf(n);void sort(float*p,int n)16 int i,j,k;float t;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(pkpj )k=j;if(k!=i)t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;(11)下列函数在 n 个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。#include void find(float*p,float*max,float*min,int n)int k;float t;*max=*p;*min=*p;for(k=1;k*max )*max=t;if(tb)f=1;else if(a=b)f=0;else f=-1;return f;输出:-1(2)键盘输入 abcdef#include void fun()char c;if(c=getchar()!=n)fun();putchar(c);void main()fun();输出:fedcba(3)#include#define C 5 int x=1,y=C;void main()int x;x=y+;printf(%d%dn,x,y);if(x4)int x;x=+y;printf(%d%dn,x,y);x+=y-;printf(%d%dn,x,y);(4)#include int c,a=4;func(int a,int b)c=a*b;a=b-1;b+;return(a+b+1);void main()int b=2,p=0;c=1;p=func(b,a);printf(%d,%d,%d,%dn,a,b,c,p);输出:4,2,8,9 (5)unsigned fun6(unsigned num)unsigned k=1;do k*=num%10;num/=10;while(num);return k;void main()unsigned n=26;printf(%dn,fun6(n);18 输出:12 输出:5 6 7 7 12 6 第 7 章 数组习题 1.单项选择题(1)int a4=5,3,8,9;其中 a3的值为(D )。A.5 B.3 C.8 D.9 (2)以下 4 个字符串函数中,(A )所在的头文件与其他 3 个不同。A.gets B.strcpy C.strlen D.strcmp(3)以下 4 个数组定义中,(D )是错误的。A.int a7;B.#define N 5 long bN;C.char c5;D.int n,dn;(4)对字符数组进行初始化,(B )形式是错误。A.char c1=1,2,3;B.char c2=123;C.char c3=1,2,3,0;D.char c4=123;(5)在数组中,数组名表示(A )。A.数组第 1 个元素的首地址 B.数组第 2 个元素的首地址 C.数组所有元素的首地址 D.数组最后 1 个元素的首地址(6)若有以下数组说明,则数值最小的和最大的元素下标分别是(B )。int a12=1,2,3,4,5,6,7,8,9,10,11,12;A.1,12 B.0,11 C.1,11 D.0,12 (7)若有以下说明,则数值为 4 的表达式是(D )。int a12=1,2,3,4,5,6,7,8,9,10,11,12;char c=a,d,g;A.ag-c B.a4 C.ad-c D.ad-c (8)设有定义:char s12=string;则 printf(%dn,strlen(s);的输出是(A )。A.6 B.7 C.11 D.12 (9)设有定义:char s12=string;则 printf(%dn,sizeof(s);的输出是(B )。A.6 B.7 C.11 D.12 (10)合法的数组定义是(A )。A.char a =string;B.int a5=0,1,2,3,4,5;19 C.char a=string;D.char a=0,1,2,3,4,5;(11)合法的数组定义是(B )。A.int a3=0,1,2,3,4,5;B.int a 3=0,1,2,3,4;C.int a23=0,1,2,3,4,5,6;D.int a23=0,1,2,3,4,5,;(12)下列语句中,正确的是(D )。A.char a3=abc,1;B.char a 3=abc,1;C.char a3=a,1;D.char a 3=a,1;(13)下列定义的字符数组中,输出 printf(%sn,str2);的输出是(C )。static str320=basic,foxpro,windows;A.basic B.foxpro C.windows D.输出语句出错(14)下列各语句定义了数组,其中哪一个是不正确的(C )。A.char a310=China,American,Asia;B.int x22=1,2,3,4;C.float x2=1,2,4,6,8,10;D.int m3=1,2,3,4,5,6;(15)数组定义为 int a32=1,2,3,4,5,6,值为 6 的数组元素是(B )。A.a32 B.a21 C.a12 D.a23 2.填空题 (1)C 语言中,数组的各元素必须具有相同的 类型 ,元素的下标下限为 0,下标必须是正整数、0、或者 常量 。但在程序执行过程中,不检查元素下标是否 越界 。(2)C 语言中,数组在内存中占一片 连续 的存储区,由 数组名 代表它的首地址。数组名是一个 常量,不能对它进行赋值运算。(3)执行 static int b5,a 3=1,2,3,4,5,6;后,b4=0 ,a12=6 。(4)设有定义语句 static int a34=1,2,3;则 a10值为 2 ,a11 值为 0 ,a21的值为 0 。(5)如定义语句为 char a=windows,b=2000;,语句 printf(%s,strcat(a,b);的输出结果为 windows2000 。(6)输入 20 个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。请填空。#include#include void main()float a20,pjz=0,s,t;int i,k;for(i=0;i 20;i+)scanf(“%f”,&ai);for(i=0;i20;i+)pjz+=ai;pjz/=20;s=fabs(a0-pjz);20 for(i=1;i20;i+)if(fabs(ai-pjz)s)s=fabs(ai-pjz);t=ai;printf(“%f,%f”,pjz,t);(7)以下程序以每行 10 个数据的形式输出 a 数组,请填空。void main()int a50,i;printf(输入 50 个整数:);for(i=0;i50;i+)scanf(%d,&ai);for(i=1;i=50;i+)if(i%10=0 )printf(%3dn,ai-1 );else printf(%3d,ai-1);(8)下面程序的功能是输出数组 s 中最大元素的下标,请填空。void main()int k,p;int s=1,-9,7,2,-10,3;for(p=0,k=p;p sk)k=p;printf(%dn,k);3.阅读程序,分析程序的功能。(1)#include#include void main()char s80;int i;for(i=0;i80;i+)si=getchar();if(si=n)break;21 si=0;i=0;while(si)putchar(si+);putchar(n);分析:输入一个字符串,以回车结束,并将其原样输出。(2)#include#include void main()char str1080,c80;int i;for(i=0;i10;i+)gets(stri);strcpy(c,str0);for(i=1;i10;i+)if(strlen(c)strlen(stri)strcpy(c,stri);printf(%sn,c);printf(%dn,strlen(c);分析:输入 10 个字符串,输出 10 个字符串中最长的字符串和它的长度。(3)#include#include void main()char a1080,c80;int i,j,k;for(i=0;i10;i+)gets(ai);for(i=0;i9;i+)k=i;for(j=i+1;j10;j+)if(strcmp(aj,ak)0)k=j;if(k!=i)strcpy(c,ai);strcpy(ai,ak);strcpy(ak,c);/字符串交换 for(i=0;i10;i+)puts(ai);分析:输入 10 个字符串,用选择排序算法将 10 22 个字符串按从小到大顺序排列并输出。(4)阅读程序,写出运行结果。#include void main()int a6=12,4,17,25,27,16;int b6=27,13,4,25,23,16,i,j;for(i=0;i6;i+)for(j=0;j6;j+)if(ai=bj)break;if(j6)printf(%d,ai);printf(n);分析:按数组 a 中元素顺序输出与数组 b 中元素相同的数。输出:4,25,27,16(5)阅读程序,写出运行结果。#include void main()char a8,temp;int j,k;for(j=0;j7;j+)aj=a+j;a7=0;for(j=0;j0;k-)ak=ak-1;a0=temp;printf(%sn,a);分析:将字符串的最后的 3 个元素移到字符串首位。输出:efgabcd (6)阅读下列程序,写出程序运行的输出结果。#include#include void main()char str1=*;for(int i=0;i=astr)putchar(*pstr);putchar(n);A.abc B.cba C.abcde D.edcba(5)若有定义 int a=1,*b,c;,以下不正确的是 A 。A.b=a B.b=&a C.b=&a,c=*b D.c=a (6)以下程序段的运行结果为 C 。int num=1,2,3,4,5,6,7,8,9,*pnum=&num2;pnum+;+pnum;printf(%dn,*pnum);A.3 B.4 C.5 D.6 (7)以下程序段的运行结果为 B 。char*pstr=My name is Tom;int n=0;while(*pstr+!=0)n+;printf(n=%dn,n);A.12 B.14 C.16 D.不确定(8)以下程序段的运行结果为 B 。int num9=1,2,3,4,5,6,7,8,9,*p;p=num;*(p+1)=0;printf(%d,%d,%dn,*p,p1,(*p)+);A.2,0,1 B.1,0,1 C.2,2,2 D.1,1,1 (9)以下程序段的运行结果为 C 。int a=5,*p=&a,b,*q;a=10;*p=15;q=p;*q=20;b=*q;p=&b;printf(a=%d,b=%d,*p=%d,*q=%dn,a,b,*p,*q);A.a=5,b=10,*p=15,*q=20 B.a=20,b=15,*p=10,*q=5 C.a=20,b=20,*p=20,*q=20 D.a=15,b=15,*p=15,*q=15 (10)已知 char*p,*q;,以下语句正确的是 C 。A.p*5;B.p/=q;C.p+=5;D.p+=q;第 9 章 结构体共用体习题 1.填空题(1)定义结构体的关键字是 struct ,定义共用体的关键字是 union 。(2)结构体和共用体的相同点是 都是构造类型,不同点是 共用体在同一时间只能使用一个成员。(3)若有以下定义和语句,则 sizeof(a)的值是 12 ,而 sizeof(b)的值是 20 。struct tu int m;char n;int y;a;struct float p;char q;struct tu r b;(4)设有下面结构类型说明和变量定义,则变量 a 在内存所占字节数是 32 。如果将该结构改成共用体,结果为 16 。struct stud char num6;int s4;double ave;a;(5)下面程序用来输出结构体变量 ex 所占存储单元的字节数,请填空。struct st char name20;double score;main()struct st ex;printf(ex size:%dn,sizeof(ex);(6)下面定义的结构体类型拟包含两个成员,其中成员变量 info 用来存入整形数据;成员变量 link 是指向自身结构体的指针,请将定义补充完整。struct node int info;struct node*link;(7)以下程序执行后输出结果是 A 。main()union unsigned int n;unsigned char c;u1;u1.c=A;printf(%cn,u1.n);(8)变量 root 如图所示的存储结构,其中 sp 是指向字符串的指针域,next 是指向该结构的指针域,data 用以存放整型数。请填空,完成此结构的类型说明和变量 root 的定义。root sp next data struct list char*sp;struct list*next;int data;root;2.阅读下面的程序,写出程序结果(1)struct info char a,b,c;main()struct info s2=a,b,c,d,e,f;int t;t=(s0.b-s1.a)+(s1.c-s0.b);printf(%dn,t);输出:2 (2)void main()union char i2;int k;stu;stu.i0=2;stu.k=0;printf(%s,%dn,stu.i,stu.k);输出:,0(3)union myun struct int x,y,z;u;int k;a;main()a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(“%dn,a.u.y);输出:0小学二(2)班班规 一、安全方面 1、每天课间不能追逐打闹。

    注意事项

    本文(C语言试题及答案.pdf)为本站会员(1398****507)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开