江苏省二级c语言考试电子书,江苏省二级c语言上机考试例题集1-20

本文探讨了如何从十进制正整数中提取奇数并构成最小数,涉及多个函数如SORT、MONGE、MERSENNE等,展示了它们在数字处理中的实际操作。同时,还涵盖了素数判断、转基、公约数查找和数据结构操作等内容。
摘要由CSDN通过智能技术生成

1、取出一个十进制正整数中的所以奇数数字,用这些数字构成一个最小数。INCLUDEINCLUDEVOIDSORTINTA,INTN{INTI,J,TFORI0IAJ1{TAJAJAJ1AJ1T}}LONGARRANGELONGS/ARRANGE函数的功能是取出十进制整数S中的所有奇数数字,用这些数字构成一个最小数,函数返回该数/{INTD,B10,I,J0LONGS10WHILES0/利用循环对S数位分离,分离出个位、十位、百位等各位上的数/{DS10IFD20/判断每一位上的数字是否为奇数/BJD/若为奇数则存放到B数组中/S/10}SORTB,J/调用SORT函数,将数组B从小到大排列/FORI0IINCLUDEINCLUDEVOIDFUNCHARA,CHARB,CHARC/函数功能是先将B指向的字符串逆序存放,然后按A0,B0,A1,B1的顺序合并A字符串和B字符串到C指向的数组中,将A或B中剩余的字符拼接在C数组的尾部/{INTI,JCHARCHI0JSTRLENB1WHILEIINCLUDEDEFINEN5VOIDCHANGEINTAN,INTN/该函数的功能是,对A指向的N行5列数组中的矩阵进行变换/{INTI,J,TFORI0IAIJ1AI1JRETURN0/若矩阵不是MONGE矩阵,函数返回0/}RETURN1/若矩阵是MONGE矩阵,函数返回1/}VOIDMAIN{INTAN{{10,17,13,28,23},{17,22,16,29,23},{24,28,22,34,24},{11,13,6,17,7},{45,44,32,37,23}}/数组初始化/INTMONGE,I,JFILEFPFPFOPEN“MYF2OUT“,“W“/以只写“W“方式打开文件/IFFPNULLEXIT0MONGEMONGEA,5/调用MONGE函数对A数组进行判断/FORI0IINCLUDEDEFINEN100INTFUNINTA,INTB,INTN{INTI,J,X,Y,Z,S,T,M,K0FORI0IAISAIAIS/求AI和S的绝对值得到T/XT/100YT/1010ZT10MZ100Y10X/交换T的百位数字与个位数字得到M/IFTM1089/判断T与M的和是否为1089/BKI}}RETURNK/函数返回数组B中数据的个数/}VOIDMAIN{INTAN{123,765,1,45,121,1345,131,67,696,3589},BN,N,IFILEFP/定义文件指针/IFFPFOPEN“MYF2OUT“,“W“NULL/以只写“W“方式打开文件/{PRINTF“THEFILECALLNOTOPEN“EXIT0}NDOTESTA,B,10/用A数组作为实参调用FUN函数/FORI0IINCLUDEDEFINEN7VOIDMERSENNELONGA,INTMINTPRIMELONGVOIDMAIN{LONGANINTIFILEFP/定义文件指针/FPFOPEN“MYF2OUT“,“W“/以只写“W“方式打开文件/IFFPNULLEXIT0MERSENNEA,N/调用MERSENNE函数,找出并保存前7个MERSENNE数/FORI0IINCLUDEINTLINKRUNINTA,INTB,INTPVOIDMAIN{INTI,A,B,MAX,P100FILEFPIFFPFOPEN“MYF2OUT“,“W“NULL/以只写“W“方式打开文件/{PRINTF“THEFILECALLNOTOPEN“EXIT0}PRINTF“ENTERA,BANUMNUMPI/求出数组中最大值/}RETURNNUM/返回最大值/}7、将一个十进制整数M转换成R进制整数的字符串表示形式INCLUDEINCLUDEVOIDTRDECCHARSTR,INTIDEC,INTIBASE/该函数的功能是,将十进制整数IDEC转换为IBASE进制的字符串表示形式/{CHARCHINTI,IDR,K0WHILEIDEC0{IDRIDECIBASE/IDEC对IBASE求余/IFIDR10/判断余数,根据余数的值对其进行变换/STRKIDR10'A'ELSESTRKIDR'0'IDEC/IBASE}FORI0IINCLUDEINTNVOIDINSERTINTP,INTX,INTN{INTI0,JWHILEXPIJPJPJ1PJX/②此语句的作用是将X插入到元素PJ的位置/}INTCREATE{INTHEAD,P,IPRINTF“\NN“SCANF“D“,HEADINTMALLOCNSIZEOFINT/③分配内存空间函数MALLOC的调用形式错误,正确的为(类型说明符)MALLOCSIZE/PRINTF“ENTERNUMBERS“PHEADFORI0IINCLUDEINCLUDE/①后续程序调用了字符函数ISALPHA,所以要加INCLUDE/VOIDREPLACE_WORDCHARS{CHARWORD_TAB410{“SAD“,“HAPPY“,“ACCUSE“,“FORGIVE“}CHART10,TMP80/②由后面的TKSJ知,此处定义的T不是一个字符变量,而是一个字符型数组/INTI,J,K,NFORI0SII{FORJI,K0ISALPHASJK,JTKSJTK0IFK0{FORN0NINCLUDEINTFACTORINTN/该函数的功能是,求整数N的所有因子之和/{INTI,S0FORI1IINCLUDEINCLUDEINCLUDEINTPRIMEINTN/该函数的功能是,判断整数A是否素数/{INTIFORI2IINCLUDEINTPRIMEINTA/该函数的功能是,判断整数A是否是素数/{INTK,IIFA1RETURN0IFA2RETURN1/A等于1和2时单独考虑/FORI2IINCLUDEINCLUDEVOIDSORTINTA,INTN/将数组A中的N个整数进行从大到小排列/{INTI,J,K,TFORI0IAKKJIFKI{TAKAKAIAIT}/利用中间变量T交换两者的值,最后将数组按从大到小的顺序进行排列/}}LONGFUNLONGS{INTD,B10,I,J0LONGS10WHILES0/利用WHILE循环对数据S进行各位数字各位的分离/{DS10IFD20/判断各位是否为偶数,若是偶数则将其保存到数组B中/BJDS/10}SORTB,J/调用函数SORT对B数组中存放的J个偶数进行排序/FORI0IINCLUDEINCLUDEDEFINEN10INTTROITSKYLONGA/该函数的功能是,求出1000000以内所有的TROITSKY数/{INTCOUNT0,BLONGN,N1FORN1N0{BN1/10}/确定数N的位数,求得数N的首位数字/N1NLONGPOW10,B110N/LONGPOW10,B1/将首位作为个位,其他三位数乘以10组成新的整数/IFN1/NDOUBLEN1/N/将符合要求的数存入数组A中/}RETURNCOUNT/函数返回TROITSKY数的个数/}VOIDMAIN{LONGAN,IINTKFILEFP/定义文件指针/FPFOPEN“MYF2OUT“,“W“/以只写方式“W“打开文件/IFFPNULLEXIT0KTROITSKYA/调用TROITSKY函数/FORI0IINCLUDEINCLUDEINCLUDEINTFIBONPRIMELONGF,INTN{INTI,M0LONGA40{1,1},J,KFORI2IK1FMAI/将素数存放到数组K中/}RETURNM/数组中素数的个数作为函数值返回/}MAIN{INTI,MLONGF40FILEFP/定义文件指针/FPFOPEN“MYF2OUT“,“W“/以只写方式“W“打开文件/IFFPNULL{PRINTF“CANNOTOPENDEFILE\N“EXIT0}MFIBONPRIMEF,30/调用函数FIBONPRIME求出FIBONACCI数列前30个数中的素数/FORI0IINCLUDEVOIDSUMFACINTX,INTNINTFACINTNMAIN{INTI,A10{1,2,4,8,16,32,64,128,256,512}FILEFP/定义文件指针/IFFPFOPEN“MYF2OUT“,“W“NULL{PRINTF“CREATFILEMYF2OUTFAILED\N“EXIT0}SUMFACA,10/调用函数SUMFAC对一维数值中的数列进行变换操作/PRINTF“\N“FPRINTFFP,“\N“FORI0IKI/利用循环,从后向前遍历数列查找超完全数/{SUMFACXI/调用FAC函数求得各元素的所有因子之和/IFFACSUMXI2/利用IF判断其是否是超完全数/{MXIFORJIJ0JXJXJ1/移动超完全数之前需将数列所有数依次后移/X0M/将超完全数移动到数列的第一个位置/KI}}}17、编写函数INTDELFINDGEDINTA,INTN,INTFINCLUDE“STDIOH“INCLUDE“CONIOH“INTDEL_FINDGCDINTA,INTN,INTF{INTI,K,GFORI0,K0IGKKGELSEGGK}}FK/保存最大公约数到F指向的变量中/RETURNN/函数返回数组中剩余的整数个数/}MAIN{FILEFP/定义文件指针/INTI,A10{6,8,9,11,12,13,15,16,18,19},F,NIFFPFOPEN“MYF2OUT“,“W“NULL{PRINTF“CAN'TOPENFILE“EXIT0}NDLE_FINDGCDA,10,/调用DLE_FINDGCD函数删除数组中的所有满足条件的整数并求出剩余整数的最大公约数/FORI0IINCLUDEINCLUDEINTHEQINMATHINTM,INTN,INTA2{INTI,J,M1,S1,S2,COUNT0FORM1MM1INCLUDEINCLUDEINTPRIME_MINTN,INTX,LONGY{INTI,J,M,COUNTLONGK0,Q,K1,K2,K3FORM2M0{INTWK310IFW1/判断2M1的十进制表示中是否包含数字1/{COUNT}K2K210WK3K3/10}IFK220CONTINUE/判断2M1的反序数是否为奇数/IFCOUNT0{XKMYKK1}/符合条件的所有整数M保存到X指向的数组中,将与M对应的整数2M1保存到Y指向的数组中/}RETURNK/函数返回X数组中保存的整数个数/}MAIN{FILEFP/定义文件指针/LONGA20INTI,J,N,B20,MIFFPFOPEN“MYF2OUT“,“W“NULL{PRINTF“OPENFILEMYF2OUTFAILED\N“EXIT1}PRINTF“INPUTN“SCANF“D“,/接收从键盘输入的参数N/MSEARCHN,B,A/调用SEARCH函数分别求得满足上述条件的所有三位正整数和所有四位正整数/FORI0IINCLUDEINCLUDEDEFINEMINX,YXBIB{MINMINMIN,AIABIBIB}ELSE{MINMINMIN,BIBAIAIA}RETURNMIN}MAIN{INTA{2,4,8,11,16},B{1,5,7,13,24}INTI,M,NMSIZEOFA/SIZEOFINTNSIZEOFB/SIZEOFINTPRINTF“\N“FORI0IMIPRINTF“5D“,AIPRINTF“\N“FORI0INIPRINTF“5D“,BIPRINTF“\NMINDISTANCED“,MIN_DISTA,B,M,N/④此处需要输出函数的返回值,PRINTF函数格式控制符应为“%D“/GETCH}

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值