江苏省C语言二级真题备考(14/20)
2021/10/16 6:16:13
本文主要是介绍江苏省C语言二级真题备考(14/20),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
1.使用科学计数法表示实数时,字母E后面必须跟实数
2.运算符的两个注意点
3.巧妙统计数组中各个元素个数
4.改错题: 涉及 toupper 函数
5.写个小代码:幻方阵(难点:副对角线怎么求和)
1.使用科学计数法表示实数时,字母E后面必须跟实数
2.运算符的两个注意点
% | 两边必须是整数,不能是浮点型定义 |
优先级 | = 小于 < |
&& 在多重出现时,从左起出现假距离,右边的&&都在执行判断 (| | 同理) |
3.巧妙统计数组中各个元素个数
#include <stdio.h> int main() { int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i,j; for(i = 0;i < 12; i++) { j = s[i]; c[j]++; } for(i=1;i<5;i++) printf("%d: %d\n",i, c[i]); return 0; }
4.改错题: 涉及 toupper 函数
函数 wordsearch的功能
将a指向的字符串中所有回文单词复制到b指向的二维数组中(一个回文单词存储在b数组的行中),
函数返回b数组中回文单词的个数。
回文单词是指:一个单词自左向右读与自右向左读相同 (字母不区分大小写)
#include <stdio.h> #include <conio.h> #include <ctype.h> int wordsearch( char a[ ] , char b[ ][10] ) { int i,j,k,m,n,t,c =0,d; for(i=0;a[i];i++) { for(j =i, k =i;isalpha(a[k]);k++ ) ; m =j;n = k -1; while (toupper(a[m] )==toupper(a[n]) && m<=n) {m++; n--;} if(m=【】=n) { for(d=0, t=j;t<k; t++) b[c][d]=a[t];【】 b[c][d]='\0'; c++; } i=k; } return c ; } int main( ) { char s1 = "Dad left home at noon." ;【】 char s2[10] [10] ; int i,j; puts(s1) ; j = wordsearch(s1 , s2) ; printf( "found % d words\n" ,j) ; for(i=0;i<j;i++) puts ( s2) ;【】 getch(); return 0; }
5.写个小代码:幻方阵(难点:副对角线怎么求和)
判断一个 N × N 矩阵是否为幻方阵
幻方阵:指一个矩阵中每行元素之和、每列元素之和及左右主对角线上元素之和 均相等。
【编程要求】
- 定义符号常量N代表5
- 编写函数 int judge( int a [ N ] [ N ])。
函数功能是判断a指向的一个N行N列二维数组中存储的矩阵是否为幻方阵,如果是则函数返回1,否则返回0
- 编写main函数
声明二维数组 x 并用测试数据初始化
用 x 数组作为实参调用judge函数进行判断,
将 x 数组中数据及 yes"或"no”表示的赶结果输出到屏幕及文件myf2.out中。
最后将考生本人准考证号字符串输出到文件myf2.out中
#include<stdio.h> #define N 5 int judge( int a [N][N] ) { int i,j; int b[N+N+2] = {0}; for(i = 0;i<N ;i++) for(j = 0;j<N;j++) b[i] += a[i][j];//每一行的和 for(j = 0;j < N ;j++) for(i = 0;i < N;i++) b[N+j] += a[i][j];//每一列的和 for(i = 0;i < N ;i++) b[N+N] += a[i][i];//主对角线的和 for(i = 0;i < N ;i++) b[N+N+1] += a[i][N-1-i];//副对角线的和 for(i = 0;i < N+N+1;i++) if(b[i] != b[i+1]) return 0; return 1; } int main() { FILE *fp; int x[N][N]={17,24,1,8,15,23,5,7,14,16,4,6,13,20,22,10,12,19,21,3,11,18,25,2,9 }; int i ,j; if( NULL != (fp = fopen("myf2.out","w"))) { for(i = 0 ; i < N ; i++) { for (j = 0; j < N; j++) { printf("%d ",x[i][j]); fprintf(fp,"%d ",x[i][j]); } printf("\n"); fprintf(fp,"\n"); } if(judge(x)) { printf("yes"); fprintf(fp,"yes"); } else { printf("no"); fprintf(fp,"no"); } fprintf(fp, "\nMy number is 9999"); fclose(fp); fp = NULL; } return 0; }
这篇关于江苏省C语言二级真题备考(14/20)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享
- 2024-07-03微信支付提示订单号重复-icode9专业技术文章分享
- 2024-07-02微服务启动nacos注册上去了,但是一直没有收到请求-icode9专业技术文章分享
- 2024-07-02如何检查文件的编码格式-icode9专业技术文章分享
- 2024-07-02sublime 更改编码格式-icode9专业技术文章分享
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享