## 数组 ### 1 数组的批量增 题目:设计程序,实现把一个数组的所有元素插入到另一个数组的指定索引位置 输入:第一行是第一个数组的元素个数len1,第二行是空格分开的len1 个元素,第三行是第二个 数组的元素个数len2,第四行是空格分开的len2 个元素,第五行是插入索引位置 输出:输出第二个数组插入到第一个数组后,第一个数组的所有元素 ```ini 输入样例: 3 1 2 3 2 4 5 0 输出样例:4 5 1 2 3 ``` ```c #include int main(){ int a[100] = {0}, b[100] = {0}; int len1, len2, index; int i; scanf("%d", &len1); for(i=0;i=index;i--){ a[i+len2] = a[i]; } for(i=0;i int main(){ int a[100]; int len, i, j = 0, num; scanf("%d", &len); for(i=0;i void change(int a[], int n){ int i, j, t, index=0; for(i=1;i a[i]){//i当前遍历的元素下标 如果当前下标值小于中间值则进入 index++;//存储位置后移 t = a[i];//备份当前位置的值 j = i;//将当前位置的下标存储 while(j > index){//如果当前遍历位置下标大于存储位置下标则元素整体后移 a[j] = a[j-1]; j--; } a[index] = t;//元素整体后移后再赋值操作 } } for(i=0;i a[i+1]){ t = a[i]; a[i] = a[i+1]; a[i+1] = t; } } } int main(){ int len, i; int a[100]; scanf("%d", &len); for(i=0;i ### 11 找字符索引 题目:编写程序,从给定字符串中查找某指定的字符所在的索引位置 输入:输入的第一行是单个待查找的字符。第二行是以回车结束的非空字符串(不超过80 个字符) 输出:如果找到,在一行内按照格式“index=下标”,输出该字符在字符串中所对应的下标(下标从0 开始),如果该字符出现多次,则返回最后一次出现的索引位置,否则输出"Not Found" ```ini 输入样例: m programming 输出样例:index=7 ``` ### 12 大小写转换 题目:编写程序,对一个以“#”结束的字符串,把小写字母全部转换成大写字母,把大写字母全部 转换成小写字母,并逆序输出结果 输入:一个以“#”结束的字符串,不超过100 个字符 输出:在一行中输出大小写转换后的结果字符串 ```ini 输入样例: Ab!23 cD &*%$ .,# 输出样例: ,. $%*& dC 32!Ba ``` ### 13 字符串比较 题目:编写程序,将两个不包含换行符的字符串s1 和s2 比较,若s1>s2,输出1;若s1=s2,输出 0,否则输出-1,要求不要用strcmp 函数 输入:输入总共两行,第一行是第一个字符串,第二行是第二个字符串,字符串的长度均小于100 输出:第一个字符串和第二个字符串比较后的结果 ```ini 输入样例: love love 输出样例:0 ``` ### 14 字符串排序 题目:编写程序,实现字符串之间的升序排序并输出结果 输入:第一行是一个整数n 代表n 个字符串(n<10 且每个字符串长度都小于80),接下来n 行都 是字符串 输出:递增排序后的结果 ```ini 输入样例: 3 abc b aaaaa 输出样例: aaaaa abc b ``` ### 15 字符串插入 题目:编写程序,实现字符串的插入 输入:输入总共三行,第一行是第一个字符串,第二行是第二个字符串,字符串的长度均小于100 且不包含换行符,第三行是代表第二个字符串插入至第一个字符串的位置 输出:把第二个字符串插入到第一个字符串的指定位置后面的结果 ```ini 输入样例: abc ee 2 输出样例:aeebc ``` ### 16 字符串删除 题目:编写程序,删除字符串中指定的子字符串 输入:输入总共两行,第一行是原字符串,第二行是需要删除的字符串,字符串的长度均小于100 且不包含换行符 输出:删除指定字符串后的新的字符串结果 ```ini 输入样例: abcddeef dee 输出样例:abcdf ``` --- ## 进制转换 ### 1 整数二进制 题目:编写程序,把十进制正整数转换为二进制,其中输入的正整数的二进制长度不会超过 32位 输入:一个正整数 n 输出:正整数的二进制格式 ```ini 输入样例:17 输出样例:10001 ``` ```c #include int main(){ int a[32]; int n, i=0; scanf("%d", &n); while(n){ a[i++] = n%2; n/=2; } i--; while(i>=0){ printf("%d", a[i]); i--; } printf("\n"); return 0; } ``` ### 2 小数二进制 题目:编写程序,把一个浮点数转换为二进制格式,其中整数部分为 0,当小数部分的二进制无穷 尽时,保留 32 位长度即可 输入:一个浮点数,范围为 0.0 int main(){ float n; int b[32], i = 0, j; scanf("%f", &n); while(n && i < 32){ b[i++]=(int)(n*2); n*=2; n-=(int)n; } printf("0."); i--; for(j=0;j<=i;j++){ printf("%d", b[j]); } printf("\n"); return 0; } ``` ### 3 二进制转十进制 题目:输入一个整数的二进制,设计程序,输出该二进制的十进制结果 输入:一 二进制表示的整数,长度不会超过 32 输出:转换成十进制后的结果 ```ini 输入样例:1001 输出样例:9 ``` ```c #include #include int main(){ char str[100]; int b[100]; int i, j = 0, sum=0, t=1; gets(str); for(i=strlen(str)-1;i>=0;i--){ b[j++] = str[i]-48; } for(i=0;i int main(){ char str[100]; char h[100] = {0}; int i, j = 0, sum, t, k, n=4; gets(str); for(i=strlen(str)-1;(i+1)/4 && i > 0;i-=4){ sum = 0; t = 1; for(k=0;k<4;k++){ sum += (str[i-k]-48)*t; t*=2; } if(sum <= 9){ h[j++] = sum+48; }else{ h[j++] = sum-10+65; } } if(i >= 0){ sum = 0; t = 1; while(i >= 0){ sum += (str[i]-48)*t; t*=2; i--; } h[j++] = sum+48; } j--; while(j >= 0){ printf("%c", h[j--]); } printf("\n"); return 0; } ``` ### 5 大整数的加法 题目:设计程序,求两个不超过 200 位的十进制非负整数的和 输入:有两行,每行是一个不超过 200 位的非负整数,不会有多余的前导 0 输出:一行,即相加后的结果。结果里不能有多余的前导 0 ```ini 输入样例: 22222222222222222222 33333333333333333333 输出样例: 55555555555555555555 ``` ```c ``` ### 6.大整数的乘法 题目:设计程序,求两个不超过 200 位的十进制非负整数的乘积 输入:有两行,每行是一个不超过 200 位的非负整数,不会有多余的前导 0 输出:一行,即相加后的结果。结果里不能有多余的前导 0 ```ini 输入样例: 55555 1234567 输出样例: 68586369685 ``` ```c ``` --- ## 文件 ### 1 文件字符统计 题目:给定一个文件“test1.txt“,请统计文件中的英文字母字符和数字字符的个数 输入:给定的一个文件“test1.txt“ 输出:英文字母和数字的个数,用空格隔开 ```ini 输入样例:一个文件,假设内容为:ab\n123\n***\n 输出样例:2 3 ``` ### 2 文件合并 题目:给定两个文件“test1.txt“和”test2.txt“,请把两个文件中的内容合并到一起并写入到新的文 件”test3.txt”之中 输入:两个文件“test1.txt“和”test2.txt“ 输出:合并后的文件“test3.txt“ ```ini 输入样例: 假设 test1.txt 的内容为:ab\ncd 假设 test2.txt 的内容为:efg\nhi 输出样例:test3.txt 的内容:ab\ncdefg\nhi ``` ### 3 写入数据到文件 题目:编写程序,实现把从键盘敲入的字符数据都追加存入文件“test.txt”中,直到敲入 ctrl+z 结束, 注意是追加写入,也就是说文件中原本的内容依旧保留 输入:从键盘敲入字符,假设敲入了“abc\ndef”,原本的“test.txt“文件中的内容为“我爱中国” 输出:写入后的文件,按照输入的方式写入后,结果应该为:“我爱中国 abc\ndef“