当前位置: 首页 > news >正文

上海教育网站前置审批外贸网站后台

上海教育网站前置审批,外贸网站后台,惠州网页模板建站,国外网站备案C语言练习4 选择题 前言 面对复杂变化的世界#xff0c;人类社会向何处去#xff1f;亚洲前途在哪里#xff1f;我认为#xff0c;回答这些时代之问#xff0c;我们要不畏浮云遮望眼#xff0c;善于拨云见日#xff0c;把握历史规律#xff0c;认清世界大势。 选择题 … C语言练习4 选择题 前言 面对复杂变化的世界人类社会向何处去亚洲前途在哪里我认为回答这些时代之问我们要不畏浮云遮望眼善于拨云见日把握历史规律认清世界大势。 选择题 1、如果 x2014 下面函数的返回值是 int fun(unsigned int x) {int n 0;while (x 1){n;x x | (x 1);} return n; } int main() {printf(%d\n, fun(2014));return 0; }A: 20 B: 21 C: 23 D 25 答案解析 正确答案C 这个作用是对整型中0的个数进行统计xx|(x1);的作用是每次循环把x的二进制中从右往左数的最后一位0变成1直道变成全1的时候x1就溢出为全0循环结束。2014的二进制是0000 0000 000 0000 0000 0111 1101 1110所以结果是23 2、下列语句定义 x 为指向 int 类型变量 a 的指针其中哪一个是正确的 A: int a , *x a; B: int a , *x a; C: int *x a , a; D: int a , x a; 答案解析 正确答案B A选项的x是指针赋值时使用a不合适C选项在赋值时a变量还没定义D选项中的x不是指针。 3、下面有关空指针和未初始化指针说法错误的是 A: 对0x0这个地址取值是非法的 B: 空指针可以确保不指向任何对象或函数; 而未初始化指针则可能指向任何地方 C: 空指针与任何对象或函数的指针值都不相等 D: malloc在其内存分配失败时返回的是一个未初始化的指针 答案解析 正确答案D malloc函数在内存分配失败时返回NULL其余选项都正确 4、若有定义 int a[8]; 则以下表达式中不能代表数组元素 a[1] 的地址的是 A: a[0]1 B: a[1] C: a[0] D: a1 答案解析 正确答案C D选项a计算时是首元素地址再加1就是a[1]的地址AB明显对C选项malloc函数在内存分配失败时返回NULLa[0]先和结合形成一个表达式不能对表达式取地址会报错 5、以下选项中对基本类型相同的两个指针变量不能进行运算的运算符是 A: B: - C: D: 答案解析 正确答案A A错误因为两个地址相加无意义也可能越界所以规定不允许指针相加。B选项可以求出两个数据元素储存位置之间的相隔同数据类型的元素个数C选项赋值没问题D选项判断两指针是否相同 6、有以下函数该函数的功能是 int fun(char* s) {char* t s;while (*t);return(t - s); }A: 比较两个字符的大小 B: 计算s所指字符串占用内存字节的个数 C: 计算s所指字符串的长度 D: 将s所指字符串复制到字符串t中 答案解析 正确答案B 循环在*t为0时停止同时tt最后会停在字符串结束的’\0’之后的一个位置t作为尾部指针减去头部指针就是整个字符串占用内存的字节数包含\0在内而c答案字符串长度不包括最后的\0 7、若有“ float a[3]{1.5,2.5,3.5},paa;(pa)*3; ”则 *pa 的值是 A: 1.5 B: 2.5 C: 3.5 D: 4.5 答案解析 正确答案B 在paa中指针pa指向a[0]pa返回值仍是操作之前的值(pa)取pa指向的地址的值(pa)3将该值变为原来的3倍也就是数组a的第一个值为4.5由于pa之后pa指针移动了sizeof(float)个字节所以pa指向a[1],所以值为2.5 8、以下程序运行后的输出结果是 #include stdio.h int main() {int a[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, * p a 5, * q NULL;*q *(p 5);printf(%d %d\n, *p, *q);return 0; }A: 运行后报错 B: 6 6 C: 6 11 D: 5 10 答案解析 正确答案A 指针q初始化为NULL接着又解引用指针q是错误的对NULL指针是不能解引用的。 9、设有定义 char *p[]{“Shanghai”,“Beijing”,“Honkong”}; 则结果为 j 字符的表达式是 A: *p[1] 3 B: *(p[1] 3) C: *(p[3] 1) D: p[3][1] 答案解析 正确答案B B选项p是个char*类型的数组p[1]拿到字符串beijing的首地址再加3便是’j’的地址解地址拿到’j’ 10、以下叙述中正确的是 A: 即使不进行强制类型转换在进行指针赋值运算时指针变量的基类型也可以不同 B: 如果企图通过一个空指针来访问一个存储单元将会得到一个出错信息 C: 设变量p是一个指针变量则语句p0;是非法的应该使用pNULL; D: 指针变量之间不能用关系运算符进行比较 答案解析 正确答案B A 选项描述不正确不同类型指针一般不可以直接赋值C选项中pNULL;和p0;是等价的D选项中指向同一数组的两指针变量进行关系运算可表示它们所指数组元素之间的位置关系。B选项正确 11、有如下代码则 *(p[0]1) 所代表的数组元素是 int a[3][2] {1, 2, 3, 4, 5, 6}, *p[3]; p[0] a[1];A: a[0][1] B: a[1][0] C: a[1][1] D: a[1][2] 答案解析 正确答案C p是一个指针数组p[0] a[1];此处a[1]是二维数组的第二行的数组名数组名表示首元素的地址a[1]是a[1][0]的地址所以p[0]中存储的是第2行第1个元素的地址p[0]1就是第二行第2个元素的地址*(p[0]1)就是第二行第二个元素了。所以C正确。 12、关于指针下列说法正确的是【多选】 A: 任何指针都可以转化为void * B: void *可以转化为任何指针 C: 指针的大小为8个字节 D: 指针虽然高效、灵活但可能不安全 答案解析 正确答案ABD C选项指针占几个字节要看平台64位环境下8个字节32位环境下4个字节 13、以下 scanf 函数调用选项中 错误的是 struct T {char name[20];int age;int sex; } a[5], * pa a;A: scanf(“%s”,a[0].name); B: scanf(“%d”, pa[0].age); C: scanf(“%d”,(pa-age)); D: scanf(“%d”, pa-age); 答案解析 正确答案D 该题考察的是通过scanf函数的调用对结构体数据类型进行初始化。scanf(“输入控制符”, 输入参数);功能将从键盘输入的字符转化为“输入控制符”所规定格式的数据然后存入以输入参数的值为地址的变量中。scanf输入时要通过地址找空间B、C用了是正确的。name属于字符数组的数组名相当于数组的首地址A正确。单独的pa-age可用于输出语句获取值的形式用在scanf中的时候需要操作符D错误 14、如下函数 fun 计算 prod123*…*n 并返回计算结果值。但当 n12 时返回值不正确。 误正确的调试方法是 int fun(int n) {int prod 1, i 0;for (i 1; i n; i){prod * i;} return prod; }A: 监视变量prod的值在prod * i;行处设置断点然后单步运行直到发现错误原因 B: 监视变量prod的值在return prod;行处设置断点程序中断后即可发现错误原因 C: 在prod1;处设置断点然后在函数调用堆栈中即可发现错误原因 D: 监视变量i的值在for (i1; in; i)行处设置断点然后单步运行直到发现错误原因 答案解析 正确答案A 依题目已知情况当n12时结果是正确的说明是随着参数的变大计算过程中哪里出了问题故而要在prod * i;处设断点查看原因。错误原因是数据过大时整型溢出 15、下列给定程序中函数 fun 的功能是把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]… 中把偶数从数组中删除奇数个数通过函数值返回。 例如若a所指数组中的数据最初排列为 9,1,4,2,3,6,5,8,7 删除偶数后a所指数组中的数据为 9,1,3,5,7 返回值为5。请在程序的下画线处填入正确的内容并将下画线删除使程序得出正确的结果 int fun(int a[], int n) {int i, j;j 0;for (i 0; i n; i)if (a[i] % 2 _________){a[j] a[i];_________;} return _________; }A: 0 j j B: 1 j j1 C: 0 j j1 D: 1 j j 答案解析 正确答案D 代码实现的思路应该是arr[i]是奇数的时候要存储起来所以第一个空是1最开始j是0每次找到一个奇数就存储到arr[j]的位置那接下里j需要1所以得第二个空是j当循环停止的时候j其实就是奇数的个数。所以最后返回j第三个空是j。所以选D。 16、指出下列代码的缺陷【多选】 float f[10]; // 假设这里有对f进行初始化的代码 for (int i 0; i 10;) {if (f[i] 0)break; }A: for(int i 0; i 10;)这一行写错了 B: f是float型数据直接做相等判断有风险 C: f[i]应该是f[i] D: 没有缺陷 答案解析 正确答案BC 一般float型只能精确到小数后六位即1e-6将float型数据的绝对值与1e-6比较来判断是否相等为零。float的精度误差在1e-6double精度误差在1e-15所以要判断一个float型数if(fabs(f)1e-6)要判断一个double型数if(fabs(f)1e-15)若满足则为零。考虑B选项是对的。若要判断float a,b是否相等要看if(fabs(a-b)1e-6)是否为真。C选项考虑的是数组越界问题 17、请指出以下程序的错误【多选】 void GetMemory(char** p, int num) {if (NULL p num 0)//1return;*p (char*)malloc(num);return; } int main() {char* str NULL;GetMemory(str, 80); //2if (NULL ! str){strcpy(str, hello); //3printf(str); //4} return 0; }A: 1 B: 2 C: 3 D: 4 答案解析 正确答案AC 第1处两种情况之一成立都是要返回的应该用或此处用与错误。在语句GetMemory(str,100);中传入str的地址在语句char*strNULL;中str初始化为空指针但是str指针变量也有地址所以参数char**p里面的p保存的是指针变量str的地址所以调用GetMemory函数之后动态开辟的空间的地址存放在了str中在函数返回之后没有释放内存但是这不会导致程序错误只会导致内存泄漏。第3处用str是错的应该直接用str是刚申请下来的空间首地址可以用来接收字符串的copy。 18、请问下列代码的输出结果有可能是哪些【多选】 #include stdio.h typedef union {int a;struct{short b;short c;}; }X; int main() {X x;x.a 0x20150810;printf(%x,%x\n, x.b, x.c);return 0; }A: 2015,810 B: 50810,201 C: 810,2015 D:20150,810 答案解析 正确答案AC 对于0x20150810 如果按照大端模式存储从低地址到高地址20 15 08 10 输出从低地址到高地址20 15 08 10 如果按照小端模式存储从低地址到高地址10 08 15 20 输出从高地址到低地址08 10 20 15 此数以int类型赋值给联合体x.a而以结构成员b和c分开访问分别拿到低地址的2个字节和高地址的2个字节大端下是2015和810小端下是810和2015 19、下面这个程序执行后会有什么错误或者效果【多选】 #define MAX 255 int main() {unsigned char A[MAX], i;for (i 0; i MAX; i)A[i] i;return 0; }A: 数组越界 B: 死循环 C: 栈溢出 D: 内存泄露 答案解析 正确答案AB 数组下标越界数组大小255但是当a[255]就是256个元素导致越界了。死循环这个是因为无符号字符型的变量大小在0-255之间所以说i永远不可能大于255的是个死循环。内存泄漏创建的临时变量在栈中应该会由系统自动释放所以应该是不存在内存泄漏的问题。栈溢出属于缓冲区溢出的一种。栈溢出是由于C语言系列没有内置检查机制来确保复制到缓冲区的数据不得大于缓冲区的大小因此当这个数据足够大的时候将会溢出缓冲区的范围 20、请问下列程序的输出是多少 #includestdio.h int main() {unsigned char i 7;int j 0;for (; i 0; i - 3){j;}printf(%d\n, j);return 0; }A: 2 B: 死循环 C: 173 D: 172 答案解析 正确答案C 本题就是找规律计算什么时候能遇到0 unsigned char 8位数据位范围在0-255所以-211111110时变成254同理-111111111时变成255最后减到0时不满足循环条件for停止。刚好173次。 7 4 1 共(7-1)/313次1-3-2即254继续循环 254 251 … 5 2 共(254-2)/3185次2-3-1即255继续循环 255 252 … 6 3 共(255-5)/3185次3-30退出循环 所以总共173次 后期会推出更多C语言练习题希望大家与我共同进步早日成为大佬
http://www.w-s-a.com/news/529063/

相关文章:

  • 电影天堂网站用什么程序做的wordpress 添加链接地址
  • 购买空间网站哪个好重庆英文网站建设
  • 建设网站需要注意什么问题设计网页通常使用什么语言
  • 彩票网站建设要多少钱西安英文网站建设
  • 静态班级网站印象云笔记 wordpress
  • 网站表单及商品列表详情模板永川网站制作联系电话
  • 网站建设与维护难不难网络服务机构的网站
  • 用三权重的网站做友链有好处没企业年金怎么查询
  • 工行网站跟建设网站区别wordpress加入地图
  • 网站的风格对比信息表广告门
  • 教育网站建设毕业设计说明书门户网站模式
  • 洛阳霞光建设网站html做分模块的网站
  • 域名建议网站wordpress 伪静态html
  • 网站风格化设计方案免费模式营销案例
  • 凤翔网站建设农村建设自己的网站首页
  • 怎样用网站做单笔外贸建筑设计公司合作加盟
  • 建网站买的是什么网站开发三层结构
  • wordpress图纸管理网站2345网址导航智能主版
  • 想调用等三方网站数据该怎么做培训课程
  • 高端营销网站建设wordpress咨询
  • 网站搜索框如何做创业怎么做网站
  • 网站手机版管理链接产品推广找哪家公司
  • vuejs 可做网站吗蜘蛛互联网站建设
  • 沈阳网站备案查询17zwd一起做业网站
  • 石家庄大型公司建站广州设计网站培训学校
  • 如何让百度收录中文域名网站wordpress前台管理评论
  • 铁岭 建筑公司网站 中企动力建设佛山app开发公司
  • 网站开发用的电脑深圳专业网站建设服务
  • 内容营销价值wordpress博客优化插件
  • 最优惠的郑州网站建设淘宝网商城