C语言程序设计试题第3套

合集下载

大连理工大学c语言题库(共12套)

大连理工大学c语言题库(共12套)
D、形参应与其对应的实参类型一致
14.下列形式,不属于编译预处理命令的是( ).
A、#ifdef M
B、#undef M
C、#if (M>1)
D、while (M>1)
15.下面判断正确的是()。
A、char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";
5.continue语句对于while和do-while循环来说,意味着转去计算While表达式.
6.在do-while循环中,根据情况可以省略while.
7.对于字符数为n个的字符串,其占用的内存为n+1个字节空间.
8.puts函数用来输出一个字符.
9.引用数组元素时,下标可以是整型表达式或整型常量.
{ int x;
int y;
} v2;
则( )是正确的引用或定义.
A、example.x=10;
B、struct v2;v2.x=10;
C、example v2;v2.x=10;
D、struct example v2={10,3};
17.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数
feof(fp)的值为()。
D、char *a[3];
10.下面叙述中不正确的是( ).
A、可以对字符型数组进行整体输入和输出.
B、不可以对浮点型数组进行整体输入和输出.
C、可以对整型数组进行整体输入和输出.
D、字符型数组可以存放字符串.
11.函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是( ).
A、实参与形参是双向传递
3.下面程序的正确输出结果是( ).(规定用U表示空格)

C语言程序设计(第3版)-参考答案

C语言程序设计(第3版)-参考答案

C语言程序设计(第3版)-参考答案C语言程序设计(第3版) - 参考答案C语言是一种广泛应用于软件开发领域的编程语言,它具有高效、简洁、灵活等特点。

《C语言程序设计(第3版)》是一本经典的教材,本文将提供一些参考答案,帮助读者更好地理解和掌握C语言程序设计。

一、基础知识1. 什么是C语言?C语言是一种通用的编程语言,由贝尔实验室的Dennis Ritchie开发,在20世纪70年代广泛流行起来。

它被设计为一种低级语言,可以直接操作计算机硬件,并提供了足够的抽象层次来方便高级程序设计。

2. 如何输出“Hello, World!”?在C语言中,使用printf函数可以输出文本信息。

要输出“Hello, World!”,可以使用以下代码:```#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```3. 如何定义和使用变量?在C语言中,可以使用关键字`int`、`float`、`char`等定义变量。

例如:```int age = 20;float weight = 60.5;char grade = 'A';```定义后的变量可以用于存储不同类型的值,并在程序中进行操作和输出。

二、控制流程1. 什么是条件语句?条件语句允许程序通过判断条件来选择性地执行不同的代码块。

在C语言中,常用的条件语句是`if`语句。

例如:```if (score >= 60) {printf("Pass\n");} else {printf("Fail\n");}```根据变量`score`的值,判断学生是否及格并输出相应结果。

2. 什么是循环语句?循环语句可以重复执行一段代码块,以达到多次执行的目的。

在C 语言中,常用的循环语句有`for`、`while`和`do while`。

计算机等级考试-三级C语言上机试题

计算机等级考试-三级C语言上机试题

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之和。

C语言程序设计(第3版)第3章习题参考答案

C语言程序设计(第3版)第3章习题参考答案

习题三参考答案(1)从键盘输入一个年份值,判断是否闰年。

设iYear为某一年份,iYear为闰年的条件为:iYear可以被4整除且不可以被100整除,或者iYear可以被400整除。

#include "Stdio.h"#include "Conio.h"int main(void){int iYear;printf("please input the year:");scanf("%d",&iYear);if(iYear%400==0||(iYear%4==0&&iYear%100!=0))printf("%d is leap",iYear);elseprintf("%d is not leap",iYear);getch();return 0;}(2)从键盘输入三个整数,按由小到大的顺序输出。

#include "stdio.h"main(){int i,j,k,max;scanf("%d%d%d",&i,&j,&k);max=i>j?i:j;max=max>k?max:k;printf("max=%d",max);getch();}(3)假设星期一至星期五每工作一小时的工资是20元,星期六和星期日每工作一小时的工资是平时的3倍,其中工资的4.5%是税金。

试编一程序从键盘输入星期序号(1,2,3,4,5,6,7,分别表示星期一至星期天)和工作小时数,计算该日的工资及应交税金。

#include "Stdio.h"#include "Conio.h"int main(void){int iWeek,iHours ;float fSalary,fTaxes;printf("please input the week number(1-7):");scanf("%d",&iWeek);printf("please input the work hours(1-12):");scanf("%d",&iHours);switch(iWeek){case 1:case 2:case 3:case 4:case 5:fSalary=20*iHours;fTaxes=fSalary*0.045;break;case 6:case 7:fSalary=3*20*iHours;fTaxes=fSalary*0.045;break;}printf("the salary is %f ,the taxes is %f",fSalary,fTaxes);getch();return 0;}(4)从键盘输入三角形的三条边长,判断是否构成三角形,如能则求出三角形的周长和面积并输出;如不能,输出不能构成三角形的信息。

三级C上机100套题

三级C上机100套题

全国计算机等级考试三级C语言程序设计上机考试习题集题目1(无忧id 14、id 27(提供isP()函数;捷成id 23题)请编写一个函数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);}无忧id 14题(无isP()函数)#include <stdio.h>void jsValue(int m,int k,int xx[]){ int i,j,s=0;for(i=m+1;k>0;i++){ for(j=2;j<i;j++)if(i%j==0) break;if(i==j) { xx[s++]=i; k--;}}}main(){int m,n,zz[100];printf("\n请输入两个整数:");scanf("%d%d",&m,&n);jsValue(m,n,zz);for(m=0;m<n;m++)printf("%d ",zz[m]);printf("\n");writeDat();}writeDat(){int m,n,zz[100],i;FILE *in,*out;in=fopen("in.dat","r");out=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(in,"%d%d",&m,&n);jsValue(m,n,zz);for(m=0;m<n;m++)fprintf(out,"%d ",zz[m]);fprintf(out,"\n");}fclose(in);fclose(out);}另一解法:void num(int m,int k,int xx[]){int n=0,data=m+1;while(n<k){if(isP(data)) xx[n++]=data;data++;}} ★题目2(无忧id 143 整数排序题)已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。

C语言程序设计-第三版-部分习题-(谭浩强-著)-清华大学出版社-课后答案

C语言程序设计-第三版-部分习题-(谭浩强-著)-清华大学出版社-课后答案

C语言程序设计第三版部分习题 (谭浩强著)清华大学出版社课后答案。

txtcopy(复制)别人的个性签名,不叫抄袭,不叫没主见,只不过是感觉对了。

遇到过的事一样罢了。

【习题1】一、简答题(在课本中寻找答案,略)1.1 C程序的基本结构包括哪些内容?1.2 如何定义标识符?1。

3 输入格式、输出格式的组成包括哪些内容?1.4 C语言函数分为哪两类?1。

5 计算表达式的值应该考虑哪些方面?1.6 上机调试程序的步骤如何?二、判断并改错1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头.错误:main函数可以放在程序的任何位置.并不限定在程序的开头。

1。

8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现.错误:不可以交叉出现,数据说明部分在执行语句部分的前面。

1。

9 编辑与编译不是一回事。

错误:不是一回事。

编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。

1.10 scanf("%d,%d”,&x,&y);的正确输入格式:3,4<回车〉.正确1。

11 注释内容太多会影响程序的执行效率。

错误:不会影响程序的执行效率。

因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中.1.12 所有的数学公式可以直接出现在源程序中.错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。

三、编程题1.13 在屏幕上输出自己名字的拼音.提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。

1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。

提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%。

2f1。

15 输入两个整数,输出其中最大者。

提示:模仿例1。

31.16 输入三个整数,输出其中最小者.提示: min(min(a,b),c);【习题2】一、简答题(在课本中寻找答案,略)2.1 常量与变量的区别?2。

青少年软件编程(C语言)等级考试试卷(三级)

青少年软件编程(C语言)等级考试试卷(三级)

青少年软件编程(C语⾔)等级考试试卷(三级)1.因⼦问题因⼦问题任给两个正整数N、M,求⼀个最⼩的正整数a,使得a和(M-a)都是N的因⼦。

时间限制:10000内存限制:65536输⼊包括两个整数N、M。

N不超过1,000,000。

输出输出⼀个整数a,表⽰结果。

如果某个案例中满⾜条件的正整数不存在,则在对应⾏输出-1样例输⼊35 10样例输出5#include <stdio.h>int main(int argc, char *argv[]){int N,M,a=0,t;scanf("%d%d",&N,&M);t=M/2;for(a=1;a<=t;a++){if( N%a==0 && (N%(M-a)==0) ) { t=-1; break; }}if(t!=-1) printf("-1\n");else printf("%d\n",a);return0;}2.质数的和与积质数的和与积两个质数的和是S,它们的积最⼤是多少?时间限制:10000内存限制:65536输⼊⼀个不⼤于10000的正整数S,为两个质数的和。

输出⼀个整数,为两个质数的最⼤乘积。

数据保证有解。

样例输⼊50样例输出589#include <bits/stdc++.h>int prime(int h){if(h < 2){return0;}for(int i=2;i<=h/2;++i){if(!(h%i))return0;}return1;}int main( ){int n;int max=0;int sj=1;int m;{if(prime(i)){m=n-i;if(prime(m)){sj=m*i;if(max<sj)max=sj;}}}printf("%d",max);}3.扩号匹配问题扩号匹配问题在某个字符串(长度不超过100)中有左括号、右括号和⼤⼩写字母;规定(与常见的算数式⼦⼀样)任何⼀个左括号都从内到外与在它右边且距离最近的右括号匹配。

c程序设计第三习题解答全

c程序设计第三习题解答全

C程序设计(第三版)课后习题参考解答第1章C语言概述1.5 参照本章例题,编写一个C程序,输出以下信息:******************************Very Good!******************************解:main ( ){printf(“****************************** \n”);printf(“\n”);printf(“Very Good! \n”);printf(“\n”);printf(“****************************** \n”);}1.6 写一个程序,输入a,b,c三个值,输出其中最大者。

解:main ( ){int a,b,c,max;printf(“请输入三个数a,b,c: \n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf(“最大数为:%d ”,max);}第2章程序的灵魂——算法2.1 什么叫结构化的算法?为什么要提倡结构化的算法?解:由一些基本结构顺序组成的算法称为结构化的算法。

由于在基本结构之间不存在非顺序的跳转,流程的转移只存在于一个基本结构范围之内,因而提高了算法的质量。

2.7 什么叫结构化程序设计?它的主要内容是什么?解:结构化程序就是用高级语言表示的结构化算法。

它的主要内容包括“自顶向下,逐步细化”的分析方法和“模块化设计”的解决方法,以及“结构化编码”的实现方法。

第3章数据类型、运算符与表达式3.4将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。

注:如果没有学过二进制和补码,此题可以不做。

解:各数据在内存中的存储形式如下表所示:它是一个负数的补码,对其再求一次补码可得其真值,即-(65536-32769)=-32767。

2023年9月青少年软件编程C语言等级考试试卷三级真题(含答案)

2023年9月青少年软件编程C语言等级考试试卷三级真题(含答案)

2023年9月青少年软件编程C语言等级考试试卷三级(含答案)分数:100题数:5一、编程题(共5题,共100分)第1题.谁是你的潜在朋友“臭味相投”——这是我们描述朋友时喜欢用的词汇。

两个人是朋友通常意味着他们存在着许多共同的兴趣。

然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。

幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。

首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。

同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。

你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友。

时间限制:1000内存限制:65536输入第一行两个整数N,M,2<=N,M<=200。

接下来有N行,第i(i=1,2,…,N)行每一行有一个数,表示读者i-1最喜欢的图书的编号P(1<=P<=M)输出包括N行,每行一个数,第i行的数表示读者i有几个潜在朋友。

如果i和任何人都没有共同喜欢的书,则输出“BeiJu”(即悲剧,^^)样例输入452321样例输出1BeiJu1BeiJu参考答案:#include<iostream>using namespace std;int a[10000],ans,c;int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a[i]==a[j]){ans++;}}if(ans>1){cout<<ans-1<<endl;}else{cout<<"BeiJu"<<endl;}ans=0;}return0;}第2题.课程冲突小A修了n门课程,第i门课程是从第ai天一直上到第bi天。

三级c语言机试题及答案

三级c语言机试题及答案

三级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语言)等级考试试卷(三级)202106

青少年软件编程(C语言)等级考试试卷(三级)202106

青少年软件编程(C语言)等级考试试卷(三级)分数:100 题数:5总体情况一、编程题(共5题,每题20分,共100分)1.数对数对给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。

比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。

时间限制:1000内存限制:65536输入一行,给出2到15个两两不同且小于100的正整数。

最后用0表示输入结束。

输出一个整数,即有多少个数对满足其中一个数是另一个数的两倍。

样例输入样例输出试题编号:试题类型:编程题标准答案:试题难度:一般试题解析:#include <iostream>using namespace std;int main() {int c = 0,x=0;int a[15];for(int i = 0; i < 15; i++) {cin >> a[i];if(a[i] == 0)break;c++;}for(int i = 0; i < c; i++) {for(int j = 0; j <c; j++) {if((a[i]/a[j] == 2)&& (a[i]%a[j] == 0) && a[j] != 0) {x++;}}}cout << x;}考生得分:20是否评分:已评分评价描述:2.井和绳子井和绳子有A, B, C, D, E五家人共用一口井,已知井深不超过k米。

A, B, C, D, E的绳长各不相同,而且厘米表示的绳长一定是整数。

从井口放下绳索正好达到水面时:(a)需要A家的绳n1条接上B家的绳1条(b)需要B家的绳n2条接上C家的绳1条(c)需要C家的绳n3条接上D家的绳1条(d)需要D家的绳n4条接上E家的绳1条(e)需要E家的绳n5条接上A家的绳1条问井深和各家绳长。

C语言程序设计第三习题库答案

C语言程序设计第三习题库答案

C 语言程序设计(第三版)习题库1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。

请编程序。

#include <stdio.h>main(){float r,h,C1,Sa,Sb,Va,Vb;scanf(__”%f ”__,&r);scanf(”%d ”,__&h _);;C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb );}2、输入一个华氏温度,要求输出摄氏温度。

公式为 c=5(F-32)/9输出要求有文字说明,取位2小数。

#include <stdio.h>main(){float F,c;scanf("%f",&F);____c=5*(F-32)/9______;printf("c=%.2f",c);}3、有一函数:⎪⎩⎪⎨⎧≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。

#include <stdio.h>main(){int x,y;printf("输入x :");scanf("%d",&x);if(x<1) { /* x<1 */y=x;printf("x=%3d, y=x=%d\n",x,y);} else if (____x<10_______){ /* 1≤x -10 */_____y=2*x-1_______;printf("x=%3d, y=2*x-1=%d\n",x,y);} else{ /* x≥10 */y=3*x-11;printf("x=%3d, y=3*x-11=%d\n",x# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d\n",y);}# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}# include "stdio.h" main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x>=1 && x<10)y=2*x-1;elsey=3*x-11;printf("%d",y);},y);}}4、给定一个不多于5位的正整数,要求:①求它是几位数;②按逆序打印出各位数字。

C语言程序设计(第3版)-参考答案 (3)

C语言程序设计(第3版)-参考答案 (3)

参考答案第 3 章顺序结构程序设计与编程基础一、选择题二、编程题略。

习题一、单项选择题(1)以下选项中,( D )不是C语言中的基本数据类型。

A)整型B)字符型C)实型D)数组(2)变量需要占用一定的存储空间,一个int类型的变量占据( D )个字节。

A)1 B)2 C)3 D)4 (3)在程序执行时,( A )的值可以发生改变。

A)变量B)常量C)符号常量D)地址(4)以下选项中,( B )标识符是正确的C语言标识符。

A)if,3abc,_a4 B)we,_3e,countC)w!,for,Const D)#t,er2_r,in-qw(5)以下关于变量定义的说法中错误的是( D )。

A)变量必须先定义后使用,变量名尽量做到见名知义B)一次可以同时定义多个相同类型的变量C)定义变量的同时给该变量赋初值,叫初始化D)在变量定义时可以指出其类型,也可以不指出(6)要将变量B初始化为1.023456789,以下定义中正确的是( C )。

A)int B=1.023456789; B)float B=1.023456789;C)double B=1.023456789; D)char B=1.023456789;(7)以下选项中,不属于常量的是( A )。

A)A123 B)#define PI 3.14C)3.1415 D)const float PI=3.14(8)以下叙述中正确的是( D )。

A)在程序运行时,常量的取值可以改变B)用户定义的标识符允许使用关键字C)用户定义的标识符必须用大写字母开头D)用户定义变量时应尽量做到“见名知义”(9)以下程序运行后的输出结果是( D )。

#define A 5#include<stdio.h>void main(){ int x;x=(A+3)*A;printf("%d",x);}A)8 B)15 C)24 D)40 (10)以下关于输入输出格式说明符的说法错误的是( B )。

杭州师范大学C语言试题第3套

杭州师范大学C语言试题第3套

一、判断题第1题:C语言可以不用编译就能被计算机识别执行参考答案:错第2题:函数的形参都属于全局变量参考答案:错第3题:在标准C语言中,函数的参数可任意类型的数据包括结构体和共用体。

参考答案:对第4题:在标准C中,没有逻辑型数据,故不能使用逻辑表达式。

错第5题:在标准C中,“=”是判断两个数是否相等。

参考答案:错第6题:在标准C语言中,指针函数参数传递是单向传递,且传递的是变量的地址参考答案:对第7题:EOF能够被识别为常量参考答案:对第8题:对于定义int *p赋初值;则初值是赋给P变量的。

参考答案:对第9题:C语言中数据的存储结构是指数据的逻辑结构在内存中的表示对第10题:C语言中既有逻辑类型也有集合类型参考答案:错二、单选题选择正确的答案输入第1题:设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是参考答案:DA、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值第2题:下面程序的输出结果是:#include<stdio.h>int func( int a, int b){int c;c=a+b;return c;}main(){int x=6, y=7, z=8, r;r=func(x--+y--,z--);printf("%d\n",r);}参考答案:DA、18B、19C、20D、21第3题:C语言结构体类型变量在程序执行期间参考答案:AA、所有成员一直驻留在内存中B、只有一个成员驻留在内存在C、部分成员驻留在内存中D、没有成员驻留在内存中第4题:变量a是int型变量,定义指针变量p的语句中正确的是参考答案:DA、int p=a;B、int *p=*a;C、int p=&a;D、int *p=&a;第5题:下面提供的一组函数中,用于按“数据块”的方式进行输入和输出的是参考答案:AA、fread(),fwrite()B、fscanf(),fprintf()C、fgets(),fputs()D、fgetc(),fputc()第6题:以下斜述不正确的是参考答案:DA、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第7题:Break语句的正确的用法是参考答案:BA、无论在任何情况下,都中断程序的执行,退出到系统下一层。

03真题与答案 202109青少年软件编程(C语言)等级考试试卷(三级)

03真题与答案  202109青少年软件编程(C语言)等级考试试卷(三级)

202109青少年软件编程(C语言)等级考试试卷(三级)分数:100 题数:51.菲波那契数列菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。

给出一个正整数a,要求菲波那契数列中第a个数对10000取模的结果是多少。

时间限制:1000内存限制:65536输入第1行是测试数据的组数n,后面跟着n行输入。

每组测试数据占1行,包括一个正整数a(1 <= a <= 1000000)。

输出n行,每行输出对应一个输入。

输出应是一个正整数,为菲波那契数列中第a个数对10000取模得到的结果。

样例输入452191样例输出5141811参考代码:#include <stdio.h>int fibonacciMod(int a) {if (a <= 2) return 1;int a1 = 1, a2 = 1;int temp;for (int i = 3; i <= a; i++) {temp = (a1 + a2) % 10000;a1 = a2;a2 = temp;}return a2;}int main() {int n;scanf("%d", &n);for (int i = 0; i < n; i++) {int a;scanf("%d", &a);printf("%d\n", fibonacciMod(a));}return 0;}2.广义格雷码在一组数的编码中,若任意两个相邻(首尾也视为相邻)的代码只有一位二进制数不同,则称这种编码为格雷码。

如四位格雷码:0000、0001、0011、0010、0110、0111、0101、0100、1100、1101、1111、1110、1010、1011、1001、1000现在将格雷码扩展至其他进制,仍然是相邻两个数只能有一位不同。

C++程序设计语言第三次作业题及答案.doc

C++程序设计语言第三次作业题及答案.doc

第3次作业一、填空题(本大题共20分,共5小题,每小题4分)1.类型兼容原则指的是:任何在需要_______ 对象的地方,都可以用 ________ 的对象去替代。

2.重新抛出异常的表达式为:_______ o3.STL中算法大致分为四类,分别是_________ 、 _____ 、______ 、______ o4.以下程序的执行结果是____________________ o#inelude <iostream>using namespace std;class A{int x;public:A(int x) {this->x二x;}A &operator--(){x--;return *this;}A operator--int){A a(x-=2);return a;}void show() { cout<< x;}};void main () {A a(3),b(3);(a--). show();(一一b)・ show();5.以下方阵类CSquare完成查找n行n列的二维int数组中两对角线上最大元素的值•请你填空完成此功能.# include class CSquare { int //arr 为矩阵首地址int num; //表示行数与列数_______ // CSquare(int *p, int n){______ // num = n;}______ //};int CSquare::FindMax() const { int max; int i 二0;int r, c, tmp;max = arr[0];for (; i < num ; i++){r = arr[i^num + i] ; //r为第i行对角线上的一个元素值_________ // c为第i行另一个对角线上的一个元素值if( r > c ) tmp 二r;else tmp = c;if ( max < tmp) max = tmp;}return max;}void main() { static int a[5][5]二{{20, -5, 21, 1& 156},{3, ~6, -& 26, ~3},{10, 7, 74, 200, 011, 94, 3, 239, 11-7, 23, 8& 2& 83}};CSquare s ((int*)a, 5);int max = s. FindMax(); cout<<,,max=/,<<=/z/z应输岀:max二〃239〃> 二、程序阅读题(本大题共40分,共5小题,每小题8分) 1.#include<stdio.h>int main(){int k=2, i=2, m;m二(k+二i*二k);printf (z,m=%d\ti=%d\n", m, i);return 0;}2.#inelude <iostream>using namespace std;int main(){int a[] = {l, 2, 3, 4, 5, 6, 7, 8, 9, 10}, s=0, i;for(i=0; i<10; i++)if(a[i]%2)s=s+a[i];cout〈〈〃s二〃〈〈s〈〈endl;;return 0;3.ttinclude <iostream>#include <cstring>using namespace std;void mycat(char *s, char *t, int p);int main(){char si [20]=/z abcdefg,z, s2[200]=〃12345〃;mycat (si, s2, 3);puts (si);return 0;)void mycat (char *s,char *t, int p){strcat (t, s+p);strepy (s+p, t);!4.ttincludc <iostrcam> using namespace std; int avere (int x, int y, int z); double aver (double x,double y, double z);int main(){int ai=l, bi二2, ci=3;double ad=l. 5, bd二5. 5, cd=7. 5;cout<<,z ai+bi+ci=,,<<aver (ai, bi, ci) <<endl; cout<<,,ad+bd+cd=/,<<avcr (ad, bd, cd) <<cndl;return 0;}int aver (int x, int y, int z){return x+y+z;idouble aver (double x, double y, double z){return x+y+z;}5.★include <iostream>using namespace std;int a, b, c, d;int main()void p(int a, int b);cout«a«,/, 〃<<b<<:,,«d«endl;p(a, b);cout«a«,/, 〃«b«〃,〃«c«〃,,,«d«endl ; return 0;)void p(int a, int b){static int c;a++, b++;c-二1, d+二1;if(a<3){p(a, b);cout<<a<<,z,,,<<b<<,,>,,<<c<</,,,,<<d<<cndl;三、程序设计题(本大题共40分,共8小题,每小题5分)1.编程序实现功能:从键盘上输入一个字符串和一个字符,统计该字符在字符串中出现的次数。

青少年软件编程(C语言)等级考试试卷(三级)2023-12

青少年软件编程(C语言)等级考试试卷(三级)2023-12

青少年软件编程(C语言)等级考试试卷(三级)2023-12202312C语言3级真题编程题1.因子问题任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。

时间限制:10000内存限制:65536输入包括两个整数N、M。

N不超过1,000,000。

输出输出一个整数a,表示结果。

如果某个案例中满足条件的正整数不存在,则在对应行输出-1样例输入35 10样例输出52.MinecraftMinecraft是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界。

在Minecraft中,基本的建筑元素是边长为1个单位的立方体,Tony想用N个这种小立方体搭建一个长方体,并用他珍藏已久的贴纸对其进行装饰。

如果一张贴纸可以贴满小立方体的一个面。

那么,他需要用掉多少张贴纸呢?时间限制:1000内存限制:65536输入一个整数N,表示小明所拥有的小立方体的个数。

N不会超过1000。

输出一个整数,即小明最少用掉的贴纸有多少张。

样例输入9样例输出303.波兰表达式波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的波兰表示法为+ 2 3。

波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的波兰表示法为* + 2 3 4。

本题求解波兰表达式的值,其中运算符包括+ - * /四个。

时间限制:1000内存限制:65536输入输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。

输出输出为一行,表达式的值。

可直接用printf("%f\n", v)输出表达式的值v。

样例输入* + 11.0 12.0 + 24.0 35.0样例输出1357.0000004.吃糖果2现有n(50 > n > 0)个糖果,每天只能吃2个或者3个,请计算共有多少种不同的吃法吃完糖果。

时间限制:1000内存限制:65536输入输入的每一行包括一组测试数据,即为糖果数n。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计试题(第3套)一、单项选择题(30分,每题2分)1.下面关于C语言的说法,错误的是______。

A、一个C程序总是从执行main开始。

B、C程序可以用/<*……*>/ 对程序作注释。

C、C语言本身没有输入输出语句,输入、输出操作由库函数scanf和printf等来完成。

D、在C程序中,数据定义的最后必须写上一个分号。

2.判断字符串s1是否大于字符串s2,应当使用。

A、if (s1>s2)B、if (strcmp(s1,s2))C、if (strcmp(s2,s1)>0)D、if (strcmp(s1,s2)>0)3. 下列表达式错误的是______。

A、4/7B、4.0/7.0C、(-4)%(-7)D、4.0%7.04. 以下能定义为用户标识符的是______。

A、scanfB、printfC、_3com_D、int5. 能正确表示a和b 同时为正或同时为负的逻辑表达式是______。

A、(a>=0‖b>=0)&&(a< 0‖b<0)B、(a>=0&&b>=0)&&(a< 0&&b<0)C、(a+b>0)&&(a+b<=0)D、a*b>06. 若有以下程序段:int c1=1, c2=2 ,c3; c3=2.0+c1%c2 ; 则执行后,c3的值是______。

A、2.0B、2C、 3.0D、37.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。

A、scanf("%d%d%d",i,j,k);B、scanf("%d %d %d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k);D、scanf("%d,%d,%d",i,j,k);8. 以下程序输出结果是。

A、7B、 6C、 5D、4main(){ int m=5;if(m++>5) printf("%d\n",m);esle printf("%d\n",m- -);}9. 有以下程序段#include<stdio. h>main(){int sum=0,i;scanf("%d",&i);do{sum=sum+i;i++;}while(i<=10);printf("sum=%d\n",sum);}若运行时从键盘输入11,则循环体会执行。

A、11次B、10次C、1次D、0次10.二维数组int a[4][4]前5个元素在内存中的排列次序为。

A、a[0][0] a[1][1] a[2][2] a[3][3] a[4][4]B、a[0][0] a[0][1] a[0][2] a[0][3] a[1][0]C、a[0][0] a[1][0] a[2][0] a[3][0] a[0][1]D、a[0] a[0][0] a[0][0][0] a[0][0][0][0] a[0][0][0][0][0]11. 在C语言中,表达式1/2+1/2+1/2+1/4+1/5运算后得到的结果是。

A、1.95B、1.5C、0D、2.012.以下程序的输出结果是。

A、3B、2C、1D、4main(){ int a[10]={1,2,3,4,5,6,7,8,9,10} , *p ;p=a;printf(" %d", *(p+2) );}13.下面对一维数组初始化(10个元素,各元素都赋值为0)的语句不合法的是。

A、int a[10]={0,0,0,0,0,0,0,0,0,0};B、int a[10]={0};C、int a[10]={0*10};D、int a[]={0,0,0,0,0,0,0,0,0,0};14. 有以下程序main(){ int i;for (i=0; i<3; i++)switch (i){ case 1: printf("%d ", i);case 2: printf("%d ", i);default : printf("%d ", i);}}执行后输出结果是。

A、011122B、012C、012020D、12015. putchar函数可以向终端输出一个。

A、整型变量表达式值B、字符C、字符串D、实型变量值一.程序填空题(30分,每空3分)1. 有以下语句段int n1=10,n2=20;printf("①",n1,n2);要求按以下格式输出n1和n2的值,输出行从第一列开始,请填空。

n1=10,n2=202. 以下程序的功能是找出x、y、z三个数中的最小值。

请填空。

main( ){ int x=4, y=5, z=8;int u, v;u=x<y ? x:y ;v=u<z ? ②;printf("%d", v);}3.统计数组元素中值大于等于60的元素的个数。

请填空。

main(){int s,i,a[10]={50,60,70,80,90,100,66,44,55,77};s=0;for(i=0;i<10;i++)if( ③)④;printf("%d",s);}4.用冒泡法对数组中的10个已知元素升序(由小到大)排序。

请填空。

main(){int a[10]={3,2,1,8,7,9,5,4,10,12};int i,j,t;for(i=0;i<9;i++)for(j=0; ⑤; j++)if(a[j]>a[j+1]){ t=a[j] ; ⑥; ⑦;}for(i=0;i<10;i++)printf("%d ",a[i]);}5.有一函数:-1.0 (x<0.0)y={ 0 (x=0.0)1.0 (x>0.0)输入一个x值,输出y值。

请填空。

main(){float x , y ;scanf ("%d",&x);if (x<0) ⑧;else if (x>0) ⑨;else ⑩;printf ("x=%f, y=%f\n" , x, y );}三.程序阅读题(20分,每题4分)阅读下列各程序,将程序运行输出的结果写在题目右边。

1. 写出程序运行的结果:main ( ){float i,j;i=3.0;j=6.2;printf("%d,%d,", (int)i,(int)j);printf("%f\n", (int)i+j);}2. 写出程序运行的结果:#define N 2main(){ int i=10, j=0;do{ j=j + i; i--;}while(i>N);printf("i=%d, j=%d\n", i, j);}3. 写出程序运行的结果:main(){ int i,j;for(i=6;i<=9;i++){ for(j=i;j<=9;j++)printf("%d",j);printf("\n");}}4. 写出程序运行的结果:main(){ int *var , ab ;ab=100;var = &ab ; ab = *var +10 ;printf("%d\n", *var ) ;}5.写出程序运行的结果(输入为73,84):main ( ){int a,b,c;scanf ("%d,%d",&a,&b);c=max(a,b);printf ("Max is %d\n", c);}max(int x,int y){int z;z=x>y?x:y;return(z);}四.程序设计题(20分,每题10分)认真阅读题目,按要求编写完整的C语言程序。

1.求一笔定期存款的利息:输入存款数、存款年数,输出到期利息。

设存款利率为:1年期2%,2年期2.5%,3年期2.8%,5年期3%。

利息计算公式:a=p×r×n,其中a为到期利息,p为存款数,n为存款年数(1年,2年,3年或5年),r为年利率。

2.某亿万富翁路遇阿凡提,阿凡提与他谈一个两人换钱的计划,阿凡提说:“我每天给你10万元,而你第一天只需给我1分钱,第二天我仍给你10万元,你给我2分钱,第三天我仍给你10万元,你给我4分钱,……,我每天都给你10万元,你每天给我的钱是前一天给我的钱的两倍,直到满一个月(30天)。

”富翁闻之大喜,兴奋地签署了这个契约。

请编写一个循环结构的程序计算一下,这一个月(30天)中,阿凡提给了富翁多少钱(用变量t表示),富翁给了阿凡提多少钱(用变量ssum表示)。

———————————————————————————本套题的参考答案:一.单项选择题(30分,每小题2分)1B 6D 11C2D 7C 12A3D 8B 13C4C 9C 14A5D 10B 15B二.程序填空题(30分,每空3分)①n1=%d,n2=%d或n1=%d,n2=%d\n或n1=%2d,n2=%2d或n1=%2d,n2=%2d\n②u:z ③a[i]>=60 ④ s++或s=s+1 ⑤j<9-i⑥a[j]=a[j+1] ⑦a[j+1]=t ⑧y=-1.0或y=-1 ⑨y=1.0或y=1 ⑩y=0.0或y=0三.程序阅读题(20分,每题4分)1. 3,6,9.200000或3,6,9.22. i=2, j=523. 6 7 8 97 8 98 994. 1105. Max is 84四.1. 本题10分。

main( ){int n;float a,p;printf ("Please input P and n:\n" );scanf ("%f,%d",&p,&n);switch (n){ case 1: a=p*2.0/100*n; break;case 2: a=p*2.5/100*n; break;case 3: a=p*2.8/100*n; break;case 5: a=p*3.0/100*n;}printf ("a=%.2f\n", a );}2.本题10分。

相关文档
最新文档