计算机三级考试C语言上机试题
全国计算机等级考试三级C语言上机100题答案word版本
![全国计算机等级考试三级C语言上机100题答案word版本](https://img.taocdn.com/s3/m/20c438a684254b35effd3444.png)
全国计算机等级考试三级C语言上机100题一.排序类:1.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include <stdio.h>#define MAX 200int a[MAX], b[MAX], cnt = 0 ;void jsVal(){int i,j,t;for(i=0;i<MAX;i++){t=a[i];if(t%2+t/10%2+t/100%2+t/1000%2==0)b[cnt++]=t;}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}} void readDat(){int i ;FILE *fp ;fp = fopen("in.dat", "r") ;for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ; fclose(fp) ;}void main(){int i ;readDat() ;jsVal() ;printf("满足条件的数=%d\n", cnt) ;for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;printf("\n") ;writeDat() ;}writeDat(){FILE *fp ;int i ;fp = fopen("out.dat", "w") ;fprintf(fp, "%d\n", cnt) ;for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ; fclose(fp) ;}2. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b 中。
C语言上机题参考答案
![C语言上机题参考答案](https://img.taocdn.com/s3/m/8f8aedf5f705cc1755270960.png)
20、设有1<=n<=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进
行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的
报数,如此进行下去直到所有的人都出圈为止。
要求按出圈次序输出编号。
输入格式如下:
n s m
示例:
输入:
6 1 3
输出:
3 6 4 2 5 1
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
8、编程输出n行图形(n值通过键盘输入),
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
if(x>1) y=6*x+5;
printf("%d",y);
}
三、循环图形
7、编程输出n行图形(n值通过键盘输入)
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
******
#include<stdio.h>
void main()
{int i,j,n;
printf("%.2f\n",(a+b+c)/3.0);
计算机等级考试-三级C语言上机试题
![计算机等级考试-三级C语言上机试题](https://img.taocdn.com/s3/m/a6cc96f90242a8956bece4e7.png)
1【审题关键句】将大于整数m且紧靠m的k个素数存入数组。
【解题思路】①首先定义一个计数变量cnt并赋初值为0。
②利用while循环统计大于整数m且紧靠m的k个素数,当计数变量cnt的值与变量k的值相等的时候,则退出while循环。
每执行一次循环时,变量m的值加1,然后调用函数isP()判断当前的m值是否为素数,如果是素数,则将m的值赋给数组xx[cnt],同时计算变量cnt的值加1,即当数组xx[0]中保存了一个素数之后,在下一次素数判断成立时将保存到xx[1]的位置上,依次类推。
【参考答案】int cnt = 0; //定义变量cnt并初值等于0while(cnt < k) //当cnt的值小于k时{m++; //变量m加1if(isP(m)) xx[cnt++] = m; //如果m为素数,则把其赋给数组元素xx[cnt],并且数组的下标cnt加1}2【审题关键句】求素数的个数及平均值,并计算非素数的平均值。
【解题思路】①首先定义循环变量i,然后通过for循环对数组a[300]中的每个元素a[i]调用函数isP(a[i])判断a[i]是否是素数(素数的算法已在isP()函数中给出,此处直接调用即可),如果是素数,则把其加到变量pjz1上,同时计数变量cnt加1,否则a[i]值加到变量pjz2上。
直到判断完数组a[300]中的所有数据后退出循环。
②求出pjz1、pjz2和cnt的值之后,再用变量pjz1的值除以cnt的值就得到素数的平均值,同时把这个值赋给变量pjz1,最后用变量pjz2的值除以300-cnt的值就得到非素数的平均值,并把这个值赋给变量pjz2。
【参考答案】int i; //定义变量ifor(i = 0; i < 300; i++) //循环变量i从0依次递增到299{if(isP(a[i])) //判断数组元素a[i]是否素数{pjz1 += a[i]; //把a[i]累加到变量pjz1cnt++; //变量cnt加1}else pjz2 += a[i]; //否则,把数组元素a[i]累加到变量pjz2 }pjz1 /= cnt; //所有素数的和pjz1除以素数的个数cnt,得到素数的平均值并赋给变量pjz1pjz2 /= (300 - cnt); //所有非素数的和pjz2除以非素数的个数300-cnt,得到非素数的平均值并赋给变量pjz23【审题关键句】100以内(含100)满足i、i+4、i+10都是素数的整数的个数以及这些i之和。
计算机三级上机:适用于三级网络技术、数据库等(南开100题)
![计算机三级上机:适用于三级网络技术、数据库等(南开100题)](https://img.taocdn.com/s3/m/ab684374284ac850ac024281.png)
全国计算机等级考试三级C语言上机100题几点说明:**********************************☆题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include <conio.h>#include <stdio.h>void readwriteDat();int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}main(){int m,n,xx[1000];clrscr();printf("\nPlease enter two integers:");scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d ",xx[m]);printf("\n");readwriteDat();}void readwriteDat(){int m,n,xx[1000], i;FILE *rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d %d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d ",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}*********************************☆题目2已知数据文件IN.DA T中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
三级C语言上机南开100题_修订word版
![三级C语言上机南开100题_修订word版](https://img.taocdn.com/s3/m/45c54f35eefdc8d376ee32e5.png)
*******************************************************************************☆题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
void jsVal(){ int i,j,qw,bw,sw,gw;for(i=0;i<MAX;i++){ qw=a[i]/1000; bw=a[i]/100%10;sw=a[i]%100/10; gw=a[i]%10;if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]) { qw=b[i]; b[i]=b[j]; b[j]=qw;}}******************************************************************************★题目3(字符型题)函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。
全国计算机三级C语言上机题库(附答案)
![全国计算机三级C语言上机题库(附答案)](https://img.taocdn.com/s3/m/b6a1ab6571fe910ef02df8b5.png)
三级机试题库(附答案)1、已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsV al(),其功能是:依次从数组a中取出一个四位数,如果该四位数大于该四位数以后的连续五个数且该数是偶数(该四位数以后不满五个数,则不统计), 则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DA T文件中。
注意: 部分源程序存在文件PROG1.C文件中。
程序中已定义数组: a[200], b[200], 已定义变量: cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
2、在文件in.dat中已存有200个正整数, 且每个数均在1000至9999之间。
函数readDat()是读取这200个数存放到数组aa中。
请编制函数jsSort(),其函数的功能是: 要求按每个数的后三位的大小进行降序排列,如果出现后三位相等的数值,则对这些数值按原始4位数据进行升序排列,将排序后的前10个数存入数组bb中。
最后调用函数writeDat()把结果bb输出到文件out.dat中。
例: 处理前90125099601270258088处理后50998088702560129012注意: 部分源程序存在文件PROG1.C文件中。
请勿改动数据文件in.dat中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
3、函数ReadDat()实现从文件IN.DA T中读取一篇英文文章,存入到无符号字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,其替代值仍存入数组xx所对应的位置上,最后调用函数WriteDat()把结果xx输出到文件OUT.DAT中。
2024年3月青少年软件编程C语言等级考试试卷三级真题
![2024年3月青少年软件编程C语言等级考试试卷三级真题](https://img.taocdn.com/s3/m/eeb4dab018e8b8f67c1cfad6195f312b3169ebdf.png)
2024年3月青少年软件编程C语言等级考试试卷三级真题分数:100 题数:5一、编程题(共5题,共100分)1.我家的门牌号我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。
若所有的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。
数据保证有唯一解。
时间限制:1000内存限制:65536输入一个正整数n。
n < 100000。
输出一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。
样例输入样例输出试题编号:20240323-3-01试题类型:编程题标准答案:试题难度:一般试题解析:展示地址:点击浏览考生答案:#include<iostream>using namespace std;int main(){int a;cin>>a;for(int i=1;i<100000;i++){for(int j=1;j<=i;j++){if((i+1)*i/2-j*2==a){cout<<j<<' '<<i;return 0;}}}}考生得分:20是否评分:已评分评价描述:2.最接近的分数分母不超过N 且小于A/B 的最大最简分数是多少?时间限制:10000内存限制:65536输入三个正整数N,A,B,相邻两个数之间用单个空格隔开。
1 <= A < B < N <= 1000。
输出两个正整数,分别是所求分数的分子和分母,中间用单个空格隔开。
样例输入样例输出试题编号:20240323-3-02试题类型:编程题标准答案:试题难度:一般试题解析:展示地址:点击浏览考生答案:(此题已作答)考生得分:0是否评分:已评分评价描述:3.菲波那契数列菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数a,要求菲波那契数列中第a个数对10000取模的结果是多少。
2024年6月青少年软件编程C语言等级考试试卷三级真题
![2024年6月青少年软件编程C语言等级考试试卷三级真题](https://img.taocdn.com/s3/m/adc41be41b37f111f18583d049649b6649d70954.png)
2024年6月青少年软件编程C语言等级考试试卷三级真题分数:100 题数:51.谷歌的招聘(20分)。
2004年7月,谷歌在硅谷的101号公路边竖立了一块巨大的广告牌用于招聘。
内容超级简单,就是一个以结尾的网址,而前面的网址是一个10位素数,这个素数是自然常数e中最早出现的10位连续数字。
能找出这个素数的人,就可以通过访问谷歌的这个网站进入招聘流程的下一步。
自然常数e是一个著名的超越数,前面若干位写出来是这样的:其中粗体标出的10位数就是答案。
本题要求你编程解决一个更通用的问题:从任一给定的长度为L的数字中,找出最早出现的K位连续数字所组成的素数。
输入:输入在第一行给出2个正整数,分别是L(不超过1000的正整数,为数字长度)和K(小于10的正整数)。
接下来一行给出一个长度为L的正整数N。
输出:在一行中输出N中最早出现的K位连续数字所组成的素数。
如果这样的素数不存在,则输出“404”。
注意,原始数字中的前导零也计算在位数之内。
例如在200236中找4位素数,0023算是解;但第一位2不能被当成0002输出,因为在原始数字中不存在这个2的前导零。
2.吉利矩阵(20分)。
所有元素为非负整数,且各行各列的元素和都等于7的3x3方阵称为“吉利矩阵”,因为这样的矩阵一共有666种。
本题就请你统计一下,把7换成任何一个[2,9]区间内的正整数L,把矩阵阶数换成任何一个[2,4]区间内的正整数N,满足条件“所有元素为非负整数,且各行各列的元素和都等于L”的NxN方阵一共有多少种?输入:输入在一行中给出2个正整数L和N,意义如题面所述。
数字间以空格分隔。
输出:在一行中输出满足题目要求条件的方阵的个数。
3.胖达与盆盆奶(20分)。
大熊猫,俗称“胖达”,会排队吃盆盆奶。
它们能和谐吃奶的前提,是它们认为盆盆奶的分配是“公平”的,即:更胖的胖达能吃到更多的奶,等胖的胖达得吃到一样多的奶。
另一方面,因为它们是排好队的,所以每只胖达只能看到身边胖达的奶有多少,如果觉得不公平就会抢旁边小伙伴的奶吃。
2020年计算机等级考试三级(C语言)上机考试试题总结
![2020年计算机等级考试三级(C语言)上机考试试题总结](https://img.taocdn.com/s3/m/ca8c8fb505087632311212b2.png)
计算机等级考试三级(C语言)上机考试试题总结第一种:产品销售记录问题:??/*已知在文件in.dat中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。
其中:??金额=单价*数量计算得出。
函数readdat()读取这100个销售记录并存入结构数组sell中。
请编制函数sortdat(),其功能要求:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中。
最后main()函数调用函数writedat()把结果输出到文件out1.dat中。
注意:部分源程序存放在prog1.c中。
??#definemax100??typedefstruct{??chardm[5];/*产品代码*/??charmc[11];/*产品名称*/??intdj;/*单价*/??intsl;/*数量*/??longje;/*金额*/??}pro;??函数解析://if((sell[i].je>sell[j].je)||(sell[i].je==sell[j].je)&& (strcmp(sell[i].dm,??sell[j].dm)>0))是此题的精华所在理解它就理解了这道题的编程道理??首先sell[i].je>sell[j].je如果金额大小成立的话,就条件成立,把两个数据换位置,如果前者不成立,就判定金额是否相等,如果相等的话,代码还有大小的话,按从小到大的顺序排列。
??这种函数的编程方法,适用于有一定基础的编程者,如果是初学者的话建议用以下函数来表达,此方法是按照题意一部一部来分析的,是比较保守的编程方法。
??voidsortdat()??{inti,j;??proswap;??for(i=0;isell[j].je)??{swap=sell[i];sell[i]=sell[j];sell[j]=swap;}??elseif((s ell[i].je==sell[j].je)&&(strcmp(sell[i].dm,sell[j].dm)>0))? ?{swap=sell[i];sell[i]=sell[j];sell[j]=swap;}??}??100个产品销售记录排序其余9题说明??1)in.dat内容完全相同。
三级c语言机试题及答案
![三级c语言机试题及答案](https://img.taocdn.com/s3/m/487901b8a48da0116c175f0e7cd184254b351be9.png)
三级c语言机试题及答案三级C语言机试题及答案1. 以下哪个选项是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //这是注释D. /*这是注释*/答案:A2. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 以下哪个选项是C语言中正确的字符串声明方式?A. char str[] = "Hello World";B. char str[] = 'Hello World';C. char str[] = {"Hello World"};D. char str[] = "Hello World";答案:A4. 在C语言中,以下哪个函数用于将字符串转换成浮点数?A. atoi()B. atof()C. itoa()D. sprintf()答案:B5. 以下哪个选项是C语言中正确的数组初始化方式?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[5] = {0};C. int arr[5] = {0, 1, 2};D. int arr[5] = {0, 1, 2, 3};答案:A6. 在C语言中,以下哪个关键字用于声明一个函数?A. functionB. defC. funcD. int答案:D7. 以下哪个选项是C语言中正确的文件包含指令?A. #include "stdio.h"B. include "stdio.h"C. #import "stdio.h"D. #include <stdio.h>答案:D8. 在C语言中,以下哪个运算符用于执行按位与操作?A. &&B. &&C. &D. ||答案:C9. 以下哪个选项是C语言中正确的单行if语句?A. if (x > y) x = y;B. if (x > y) { x = y; }C. if (x > y) x = y; else y = x;D. if (x > y) { x = y; } else { y = x; }答案:A10. 在C语言中,以下哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C。
重点推荐最新全国计算机等级考试三级(C语言)上机考试试题总结
![重点推荐最新全国计算机等级考试三级(C语言)上机考试试题总结](https://img.taocdn.com/s3/m/597ff1a4192e45361066f5da.png)
最新全国计算机等级考试三级(C语言)上机考试试题总结第一种: 产品销售记录问题:/* 已知在文件IN.DAT中存有100个产品销售记录, 每个产品销售记录由产品代码dm(字符型4位), 产品名称mc(字符型10位), 单价dj(整型), 数量sl(整型), 金额je(长整型)五部分组成。
其中:金额=单价*数量计算得出。
函数ReadDat( )读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat( ), 其功能要求: 按金额从小到大进行排列, 若金额相等, 则按产品代码从小到大进行排列, 最终排列结果仍存入结构数组sell中。
最后main( )函数调用函数WriteDat()把结果输出到文件OUT1.DAT中。
注意: 部分源程序存放在PROG1.C中。
#define MAX 100typedef struct {char dm[5] ; /* 产品代码 */char mc[11] ; /* 产品名称 */int dj ; /* 单价 */int sl ; /* 数量 */long je ; /* 金额 */} PRO ;函数解析://if((sell[i].je>sell[j].je)||(sell[i].je==sell[j].je)&&(strcmp(s ell[i].dm,sell[j].dm)>0))是此题的精华所在理解它就理解了这道题的编程道理首先sell[i].je>sell[j].je如果金额大小成立的话,就条件成立,把两个数据换位置,如果前者不成立,就判定金额是否相等,如果相等的话,代码还有大小的话,按从小到大的顺序排列。
这种函数的编程方法,适用于有一定基础的编程者,如果是初学者的话建议用以下函数来表达, 此方法是按照题意一部一部来分析的,是比较保守的编程方法。
void SortDat(){ int i,j;PRO swap;for(i=0; i < MAX-1; i++){ for(j=i+1; j < MAX; j++)if(sell[i].je>sell[j].je){swap=sell[i]; sell[i]=sell[j]; sell[j]=swap;}else if((sell[i].je==sell[j].je)&&(strcmp(sell[i].dm,sell[j].dm)>0)) {swap=sell[i]; sell[i]=sell[j]; sell[j]=swap;}}100个产品销售记录排序其余9题说明1) in.dat 内容完全相同。
全国计算机等级考试三级C语言上机100题答案
![全国计算机等级考试三级C语言上机100题答案](https://img.taocdn.com/s3/m/5994c008caaedd3383c4d378.png)
全国计算机等级考试三级C语言上机100题一.排序类:1.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include <stdio.h>#define MAX 200int a[MAX], b[MAX], cnt = 0 ;void jsVal(){int i,j,t;for(i=0;i<MAX;i++){t=a[i];if(t%2+t/10%2+t/100%2+t/1000%2==0)b[cnt++]=t;}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}}void readDat(){int i ;FILE *fp ;fp = fopen("in.dat", "r") ;fclose(fp) ;}void main(){int i ;readDat() ;jsVal() ;printf("满足条件的数=%d\n", cnt) ;for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;printf("\n") ;writeDat() ;}writeDat(){FILE *fp ;int i ;fp = fopen("out.dat", "w") ;fprintf(fp, "%d\n", cnt) ;for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ; fclose(fp) ;}2. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b 中。
国家三级计算机c 考试试题及答案
![国家三级计算机c 考试试题及答案](https://img.taocdn.com/s3/m/f35c26ee48649b6648d7c1c708a1284ac9500546.png)
国家三级计算机c 考试试题及答案国家三级计算机C考试试题及答案本文提供国家三级计算机C考试的试题及答案,帮助考生进行备考和提升技能水平。
一、选择题1. 下列哪个选项可以用于从文件中读取数据?a) fscanf()b) printf()c) scanf()d) switch()答案:a) fscanf()2. 在C语言中,以下哪个选项不是数据类型修饰符?a) shortb) constc) unsignedd) double答案:b) const3. 在C语言中的程序结构中,下列哪一部分可选?a) for循环b) else语句c) main函数d) if语句答案:b) else语句4. 在C语言中,以下哪个选项用于定义整数常量?a) intb) floatc) chard) enum答案:d) enum5. 在C语言中,用于连接字符串的运算符是?a) +b) *c) /d) -答案:a) +二、填空题1. C语言中,用于定义宏的关键字是_________。
答案:#define2. 下列哪个函数用于从控制台输出字符?答案:putchar()3. 在C语言中,sizeof()函数用于计算数据类型的_________。
答案:字节大小4. 下列哪个选项用于声明一个指针变量?答案:*5. 下列哪个运算符用于判断两个变量是否相等?答案:==三、编程题1. 编写一个C程序,从键盘输入两个整数,然后输出它们的和。
```c#include<stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d", sum);return 0;}```2. 编写一个C程序,计算并输出1到10之间的所有偶数的乘积。
三级C语言上机试题逐题解析
![三级C语言上机试题逐题解析](https://img.taocdn.com/s3/m/bc7413fc5ff7ba0d4a7302768e9951e79b8969aa.png)
三级络技术和三级数据库技术的C语⾔上机试题难度较⼤,题型多样,因此颇难掌握,今将这些试题分类解析,希望能帮⼤家顺利通过上机考试。
三级的上机题可以分为⼗⼏个类型,每类中的题⽬数量不⼀,多则⼗⼏道题,少则三四道题,但是每类题都差不多,每类中只要掌握⼀道题,再理清做题的思路,那就相当于全掌握了。
好了,今天现看⼏个题⽬⽐较多得类型。
第⼀类:关于f(p)=p*11 mod 256字符变换的题型,⼀般这类题的题⽬说明如下 函数ReadDat()实现从⽂件ENG.IN中读取⼀篇英⽂⽂章,存⼊到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进⾏替代,仍存⼊数组xx的对应的位置上,最后调⽤函数WriteDat()把结果xx输出到⽂件PS10.DAT中。
替代关系:f(p)=p*11 mod 256 (p是数组中某⼀个字符的ASCII值,f(p)是计算后新字符的ASCII值[U][I]),如果原字符的ASCII值是偶数或计算后f(p)值⼩于等于32,则该字符不变,否则将f(p)所对应的字符进⾏替代[/I][/U]。
void encryptChar() { int i,j; unsigned char fp; for(i=0;i for(j=0;xx[i][j]!='\0';j++) { fp=xx[i][j]*11 % 256 ; if(!(xx[i][j]%2==0||fp<=32)) xx[i][j]=fp; } } 题解:这类题⽐较简单,每道题的不同之处在于,要替换的字符的条件不⼀样,但条件中总会说“如果该字符符合什么条件,字符就不变,否则就替换。
”解决这个问题最省事的办法就是把不变的条件写好,前⾯加上逻辑⾮,如 (!(xx[i][j]%2==0||fp<=32)) 。
c上机考试试题
![c上机考试试题](https://img.taocdn.com/s3/m/20366789d05abe23482fb4daa58da0116d171f59.png)
c上机考试试题# C上机考试试题一、单项选择题(每题2分,共20分)1. 下列关于C语言基本数据类型的说法中,错误的是()。
- A. `int` 类型通常用于表示整数- B. `float` 类型用于表示单精度浮点数- C. `double` 类型用于表示双精度浮点数- D. `char` 类型用于表示一个字符或整数2. 在C语言中,用于定义数组的关键字是()。
- A. `define`- B. `array`- C. `list`- D. `int[]`3. C语言标准输入输出使用的库函数是()。
- A. `<stdio.h>`- B. `<math.h>`- C. `<stdlib.h>`- D. `<iostream>`4. 下列哪个是C语言中的合法标识符?()- A. `class`- B. `case`- C. `2b`- D. `user_name`5. C语言中,用于实现字符串连接的函数是()。
- A. `strcpy()`- B. `strcat()`- C. `strlen()`- D. `strncpy()`6. 在C语言中,`printf` 函数的返回类型是()。
- A. `int`- B. `float`- C. `char`- D. `void`7. 下列关于C语言函数的描述中,错误的是()。
- A. 函数可以返回一个值- B. 函数可以没有返回值- C. 函数必须有返回值- D. 函数可以有多个返回值8. 在C语言中,用于计算两个整数的最大值的宏定义在哪个头文件中?()- A. `<math.h>`- B. `<stdlib.h>`- C. `<limits.h>`- D. `<stdio.h>`9. C语言中,`break` 语句的作用是()。
- A. 跳出整个循环- B. 跳出最近的一个循环- C. 跳出整个程序- D. 继续下一次循环10. 下列关于C语言结构体的描述中,错误的是()。
计算机等级考试c语言程序设计试题及答案
![计算机等级考试c语言程序设计试题及答案](https://img.taocdn.com/s3/m/146a3a8f0875f46527d3240c844769eae109a332.png)
计算机等级考试c语言程序设计试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A2. 下列选项中,哪个是合法的C语言变量名?()A. 2variableB. variable2C. variable_2D. variable-2答案:C3. 在C语言中,用于定义一个函数的关键字是()。
A. functionB. defC. defineD. int答案:D4. 下列关于C语言数组的描述中,错误的是()。
A. 数组名代表数组的起始地址B. 数组可以存储不同类型的数据C. 数组的下标从0开始D. 数组在内存中是连续存储的答案:B5. 下列关于C语言指针的描述中,正确的是()。
A. 指针可以存储任何类型的数据B. 指针变量的值是它所指向的变量的地址C. 指针变量不能被赋值D. 指针变量不能作为函数的参数答案:B6. 在C语言中,用于定义一个枚举类型的关键字是()。
A. enumB. structC. unionD. typedef答案:A7. 下列关于C语言函数的描述中,错误的是()。
A. 函数可以有返回值B. 函数可以没有返回值C. 函数必须有返回值D. 函数可以有参数答案:C8. 在C语言中,用于定义一个联合体的关键字是()。
A. structB. unionC. enumD. typedef答案:B9. 下列关于C语言中的循环控制语句的描述中,错误的是()。
A. for循环可以没有初始化表达式B. while循环至少执行一次循环体C. do-while循环至少执行一次循环体D. for循环可以没有循环控制表达式答案:B10. 在C语言中,用于定义一个宏的预处理命令是()。
A. #defineB. #includeC. #importD. #pragma答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字可以定义一个常量。
计算机三级上机:适用于三级网络技术、数据库等(南开100题)
![计算机三级上机:适用于三级网络技术、数据库等(南开100题)](https://img.taocdn.com/s3/m/076328dc65ce050876321380.png)
全国计算机等级考试三级C语言上机100题几点说明:**********************************☆题目1请编写一个函数jsValue(intm,intk,intxx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入175则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include<conio.h>#include<stdio.h>voidreadwriteDat();intisP(intm){inti;for(i=2;i<m;i++)if(m%i==0)return0;return1;}voidnum(intm,intk,intxx[]){ints=0;for(m=m+1;k>0;m++)if(isP(m)){xx[s++]=m;k--;}}main(){intm,n,xx[1000];clrscr();printf("\nPleaseentertwointegers:");scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d",xx[m]);printf("\n");readwriteDat();}voidreadwriteDat(){intm,n,xx[1000],i;FILE*rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}*********************************☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
三级网络机试C语言练习试题
![三级网络机试C语言练习试题](https://img.taocdn.com/s3/m/edef7247852458fb770b5640.png)
1.编写程序,输出矩形图形。
行数列数由键盘输入。
*********************#include <stdio.h>main(){int i,j,m,n;printf("enter m:\n");scanf("%d",&m);printf("enter n:\n");scanf("%d",&n);for(i=1;i<=m;i++){for(j=1;j<=n;j++)printf("*");printf("\n");}}2.编写程序,输出一个菱形,菱形的行数由键盘随机输入。
*************#include <stdio.h>void main(){int i,j,m;printf("enter m:");scanf("%d",&m);for(i=1;i<=m;i++){for(j=1;j<=m-i;j++)printf(" ");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}for(i=1;i<=(m-1);i++){for(j=1;j<=i;j++)printf(" ");for(j=1;j<=(2*m-1)-2*i;j++)printf("*");printf("\n");}}3.编写程序输入下列图形,行数有键盘随机输入。
AABABCABCD#include <stdio.h>void main(){int i,j,m;char x;printf("enter m:");scanf("%d",&m);for(i=1;i<=m;i++){ x='A';for(j=1;j<=2*i-1;j++){printf("%c",x);x++;}printf("\n");}}4.编写程序输出下列图形。
(完整版)C语言上机练习题及答案
![(完整版)C语言上机练习题及答案](https://img.taocdn.com/s3/m/4da822070622192e453610661ed9ad51f01d548e.png)
(完整版)C语言上机练习题及答案1输入三个整数x,y,z,把这三个数由小到大输出。
# includevoid main(){int x,y,z,a;scanf ("%d,%d,%d",&x,&y,&z);if(x>y) {a=x; x=y;y=a;}if(x>z) { a=x; x=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",x,y,z);}2输入圆的半径,输出圆的周长和面积。
# include# define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# includevoid main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。
# includeint main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序的改进: 程序的改进: 通过证明,只需判断在 只需判断在2—sqrt(n)范围内没有一 通过证明 只需判断在 范围内没有一 个自然数k能够整除 能够整除n,就能证明n是素数 个自然数 能够整除 ,就能证明 是素数 for(k=2;k<=sqrt(n);k++) if(n%k==0) break; 例子:第10、45套 例子: 、 套
第二部分——算法的分析: 第二部分 算法的分析: 算法的分析 (1)首先输入一个需要判定的自然数 )首先输入一个需要判定的自然数n (2)接着,我们设置一个除数变量,同时也 )接着,我们设置一个除数变量, 是一个计数变量k,将其初值设置为2 是一个计数变量 ,将其初值设置为 (3)使用第一个判断框,设置循环的条件为 )使用第一个判断框, 循环中判断n 的值, “k<=n/2” ,循环中判断 mod k的值,如 的值 果不为零,继续循环;如果为零, 果不为零,继续循环;如果为零,直接跳出 循环 的值确定n是否是素数 (4)循环结束通过 的值确定 是否是素数 )循环结束通过k的值确定
算法流程图: 算法流程图
判断素数的C程序 判断素数的 程序: 程序 void IsPrime(int n) { int k; printf("输入一个正整数:"); 输入一个正整数: 输入一个正整数 scanf("%d",&n); for(k=2;k<=n/2;k++) if(n%k==0) break; if(k>n/2) printf("%d是一个素数。",n); 是一个素数。 是一个素数 else printf("%d不是一个素数。",n); 不是一个素数。 不是一个素数 }
(三)多位整数分解
假定num为一个四位正整数,如何求出各 为一个四位正整数, 假定 为一个四位正整数 位上数字 千位数字: 千位数字:num/1000 百位数字: 百位数字:num%1000/100 十位数字:num%100/10 十位数字: 个位数字: 个位数字:num%10
第2、3套 等 、 套
排序演示
程序
#include<stdio.h> #define N 10 void main() { int a[N+1],b,c,temp; printf("请输入 个数字:\n"); 请输入10个数字: 请输入 个数字 for(b=1;b<=N;b++) scanf("%d",&a[b]); for(b=1;b<=N-1;b++) for(c=1;c<=N-b;c++) if(a[c]>a[c+1]) { temp=a[c]; a[c]=a[c+1]; a[c+1]=temp; } for(b=1;b<=N;b++) printf("%d ",a[b]); putchar('\n9'); }
(二)素 数 问 题
判断一个数是否是素数的方法 (1) 算法设计 (2) 算法分析 (3) 算法流程图 (4) C程序代码 程序代码
第一部分 —— 算法设计 如果某个自然数n是素数 是素数, 如果某个自然数 是素数,那么可能存在 这样的情况——在2~n/2范围内没有一个自 这样的情况 在 范围内没有一个自 然数k能够整除 能够整除n。所以, 然数 能够整除 。所以,如果要判断自然数 n是否为一个素数,只需要让 不断的去除 是否为一个素数, 是否为一个素数 只需要让n不断的去除 以从2开始的 开始的, 结束的整数k, 以从 开始的,到n/2结束的整数 ,这是一 结束的整数 个反复执行的操作。 个反复执行的操作。如果在这个范围内的数 没有一个k能够整除 能够整除n,就说明n是一个素数 是一个素数。 没有一个 能够整除 ,就说明 是一个素数。 反之,只需要存在一个k能够整除 能够整除n, 反之,只需要存在一个 能够整除 ,就说明 n不是一个素数。 不是一个素数。 不是一个素数
计算机三级考试C 计算机三级考试 语言上机试题
(一)冒泡法排序
冒泡法顾名思义就是将一个数从下面浮上来,假设有 个数 个数, 冒泡法顾名思义就是将一个数从下面浮上来,假设有5个数, 21 56 87 6 9, , 将第五个元素的值与第四个元素的值相比, 将第五个元素的值与第四个元素的值相比,如果第五个元素 的值小于第四个元素的值,则交换着两个元素的值。 的值小于第四个元素的值,则交换着两个元素的值。 接下来,将第四个元素的值与第三个元素的值进行比较, 接下来,将第四个元素的值与第三个元素的值进行比较,按 照类似的方式,如果发现下面元素的值小于上面元素的值, 照类似的方式,如果发现下面元素的值小于上面元素的值, 则交换着两个值。 则交换着两个值。 将第三个元素的值与第二个元素的值比较,做同样的工作。 将第三个元素的值与第二个元素的值比较,做同样的工作。 在这一轮比较结束时,最小值将到达最上面, 在这一轮比较结束时,最小值将到达最上面,可以说最小值 已经浮到最上面 第二轮,从最底部的元素开始比较,直到第二个元素, 第二轮,从最底部的元素开始比较,直到第二个元素,因为 第一个已经是最小,不需要再进行比较。 第一算数值,统计, 计算数值,统计,求平均值等
(五)字符串元素的访问
字符串替换,移动, 字符串替换,移动,排序等 第56套等 套等
(六)选票问题
二维数组的使用 第60套等 套等