程序设计与算法语言上机精彩试题abc - 副本 - 副本
大学C语言程序设计试题含答案

大学C语言程序设计试题含答案一、简答题1. 请简要解释什么是C语言程序设计。
C语言程序设计是一种计算机编程语言,由贝尔实验室的Dennis Ritchie在20世纪70年代早期开发。
它强调的是效率和可移植性,被广泛应用于操作系统、嵌入式系统和其他需要高效执行的应用程序开发。
2. C语言的基本数据类型有哪些?请列举并简要说明其特点。
C语言的基本数据类型包括:- int:用于表示整数,通常占用4个字节内存,可以表示范围较大的整数;- char:用于表示字符,占用1个字节内存,常用于存储ASCII码;- float:用于表示单精度浮点数,占用4个字节内存,可用于表示小数;- double:用于表示双精度浮点数,占用8个字节内存,可用于表示更大范围和更高精度的小数;- void:表示无类型,常用于函数返回类型。
3. 请解释C语言中的变量和常量的概念,并简要说明它们的区别。
变量是用于存储和表示数据的一种方式,可以根据需要改变其值。
在C语言中,变量声明需要指定其类型,并可以为变量命名,并通过赋值来存储数据。
常量是固定不变的值,不能改变其值。
在C语言中,常量可以是字面值常量(直接指定数值或字符)、符号常量(使用预处理器#define 指令定义的常量)或常量表达式(由常量组成的表达式)。
常量在程序执行过程中保持不变。
二、编程题1. 编写一个程序,输入一个整数,判断该数字是奇数还是偶数,并输出相应的提示信息。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数: ");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。
\n", num);} else {printf("%d是奇数。
\n", num);}return 0;}```2. 编写一个程序,计算并输出1到100之间所有奇数的和。
C语言程序设计上机考试试题和参考答案

printf("Input str1:\n"); gets(str1); //1
printf("Input m and n:\n"); scanf("%d%d", &m, &n); //1
mystrcpy(str1, str2, m, n); //2 puts(str2); }
1、请按行读入数据 2、请按给定的函数原型编写程序,否则即使程序运行结果正确,也不给分。 参考答案
#include<stdio.h>
void Input(int a[][10], int n);
int Compute(int a[][10], int n);
main()
{
int n, a[10][10]; int sum;
//2
{
int i, flag = 0, sum = 0; //1
for (i = 1; i <= n / 2; i++) //1
{
if (n % i == 0)
//1
{
sum = sum + i; //1
}
}
if (sum == n)
//1
{
flag = 1;
}
return flag;
//1
} 3.(15 分)请按给定要求编程计算方阵的主对角线之和。其中方阵的输入请在 Input 函数实现,计算主对角之和请在 Compute 函数实现,计算结果请在主函数打印, 且给定的方阵最大为 10x10,方阵实际大小请在主函数读入。Input 函数和 Compute 函数的函数原型如下:
C语言程序设计试题与答案-

《C语言程序设计》试题(闭卷)一、单项选择题:(每题 2 分,共 30 分)1. C 语言规定:在一个源程序中,main函数的位置_____________。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后2. 下列说法中错误的是_____________。
A. 主函数可以分为两个部分:函数头和函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行3. 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将_____________。
A. 生成目标文件B. 生成可执行目标文件C. 输出运行结果D. 自动保存源文件4. 以下选项中,不正确的 C 语言浮点型常量是_____________。
A. 160.B. 0.12C. 2e4.2D. 0.05. 以下用户标识符中,合法的是_____________。
A. intB. nitC. 123D. a+b6. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为_____________。
A. 算术运算、关系运算、赋值运算B. 算术运算、赋值运算、关系运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算7. 设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是_____________。
A. 1,1B. 0,1C. 1,0D. 0,08. sizeof (char)的结果值是_____________。
A. 4B. 2C. 1D.出错9. 设 a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是_____________。
A. 10<a<15B. a= =11|| a= =12 || a= =13 || a= =14C. a>10 && a<15D. !(a<=10) && !(a>=15)10. 要为字符型变量 a赋初值,下列语句中哪一个是正确的_____________。
《C语言》程序设计题库及答案

《C语言》程序设计题及答案1.【程序设计】--------------------------------------------------功能:对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。
例如:原来的字符串为CEAedca,排序后输出为CedcEAa。
------------------------------------------------*/{/**********Begin**********/int i,j;char t;for(i=1;i<num-1;i++)for(j=i+1;j<num-1;j++)if(s[i]<s[j]){ t=s[i];s[i]=s[j];s[j]=t;}/********** End **********/2.【程序设计】--------------------------------------------------功能:编写函数求3!+6!+9!+12!+15+18!+21!。
------------------------------------------------*/{/**********Begin**********/int i,j;float t,s=0;for(i=3;i<=n;i=i+3){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}return(s);/********** End **********/3./*------------------------------------------------ 【程序设计】-------------------------------------------------- 功能:判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。
------------------------------------------------*/ /**********Begin**********/int k,s=0;do{s=s+(w%10)*(w%10);w=w/10;}while(w!=0);if(s%5==0)k=1;else k=0;return(k);4./*------------------------------------------------ 【程序设计】-------------------------------------------------- 功能:求给定正整数n以内的素数之积。
c语言上机考试试题

c语言上机考试试题C语言上机考试试题在计算机科学领域中,C语言是一门重要的编程语言,广泛应用于软件开发、系统编程等方面。
作为计算机专业的学生,掌握C语言的基本知识和编程技巧是必不可少的。
为了检验学生对C语言的掌握程度,许多学校和培训机构会安排C语言上机考试。
下面,我们来看一些典型的C语言上机考试试题。
1. 编写一个程序,从键盘输入一个整数n,计算并输出1到n的累加和。
这道题考察了学生对循环结构的理解和运用。
学生需要使用循环语句(如for、while等)来实现累加的功能,并且注意输入的合法性。
2. 编写一个程序,从键盘输入一个字符串,统计并输出其中的字母、数字和其他字符的个数。
这道题考察了学生对字符串处理的能力。
学生需要使用字符数组和循环语句来逐个判断输入字符串中的字符,并根据字符的类型进行计数。
3. 编写一个程序,从键盘输入一个正整数n,判断并输出n是否为素数。
这道题考察了学生对素数判断的理解和实现。
学生需要使用循环语句和条件判断语句来判断n是否能被2到sqrt(n)之间的任意整数整除。
4. 编写一个程序,从键盘输入一个正整数n,计算并输出n的阶乘。
这道题考察了学生对递归的理解和应用。
学生可以使用递归函数来实现阶乘的计算,也可以使用循环语句来实现。
5. 编写一个程序,从键盘输入一个字符串,将其中的大写字母转换为小写字母,并输出转换后的字符串。
这道题考察了学生对字符处理的能力。
学生需要使用字符数组和循环语句来逐个判断输入字符串中的字符,并根据字符的ASCII码进行转换。
6. 编写一个程序,从键盘输入一个字符串,判断并输出该字符串是否为回文字符串。
这道题考察了学生对字符串处理和回文判断的能力。
学生需要使用字符数组和循环语句来逐个比较输入字符串中的字符,并判断是否为回文字符串。
通过上述的典型试题,我们可以看到C语言上机考试主要考察学生对基本语法、流程控制、数组和字符串处理等方面的掌握程度。
在解答这些试题时,学生需要注重代码的逻辑性、清晰性和效率性,避免出现死循环、数组越界等常见错误。
C语言上机编程题,全

上机编程题的最大值,并将该数以格式"%.3f"写到1. 对x=1,2,...,10,求函数f(x)=x-10*cos(x)-5*sin(x)考生目录下的新建文件design1.dat中。
#include <stdio.h>#include <math.h>void main(){ FILE *p; float f(float),max,x;p=fopen("design1.dat","w");max=f(1);for(x=2;x<=10;x++)if(f(x)>max) max=f(x);fprintf(p,"%.3f",max);fclose(p);}float f(float x){y=y-10*cos(y)-5*sin(y);return (y);},若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,2. z=f(x,y)=(3.14*x-y)/(x+y)并将x1、y1以格式"%d,%d"写入到考生目录下的新建文件design1.dat中。
#include <stdio.h>void main(){ FILE *p; float f(float x,float y),min;int x,y,x1,y1;p=fopen("design1.dat","w");min=f(1,1);for(x=1;x<=6;x++)for(y=1;y<=6;y++)if(f(x,y)<min){min=f(x,y); x1=x;y1=y;}fprintf(p,"%d,%d",x1,y1);fclose(p);}float f(float u,float v){ return (3.14*u-v)/(u+v); }若x,y取值为区间[0,10]的整数,找出使z取最小值的3. z=f(x,y)=10*cos(x-4)+5*sin(y-2),x1,y1,并将x1、y1以格式"%d,%d"写入到考生目录中Paper子目录下的新建文件design1.dat中。
C#编程题大全(上机操作题)

C#编程题大全(上机操作题)1、从键盘输入一个正整数,按数字的相反顺序输出。
2、从键盘上输入两个整数,由用户回答它们的和,差,积,商和取余运算结果,并统计出正确答案的个数。
3、写一条for语句,计数条件为n从100~200,步长为2;然后再用while语句实现同样的循环。
4、编写一段程序,运行时向用户提问“你考了多少分?(0~100)”,接受输入后判断其等级并显示出来。
判断依据如下:等级={优(90~100分);良(80~89分);中(60~69分);差(0~59分);}5、输入一个整数,将各位数字反转输出。
6、使用穷举法并分别用for、while、do…while循环语句求出1~100之间的质数。
7、求出1~1000之间的所有能被7整除的树,并计算和输出每5个的和。
8、编写一个控制台程序,分别输出1~100之间的平方、平方根、自然对数、e指数的数学用表。
9、设计一个包含多个构造函数的类,并分别用这些构造函数实例化对象。
10、编写一个矩形类,私有数据成员为举行的长(len)和宽(wid),无参构造函数将len和wid设置为0,有参构造函数设置和的值,另外,类还包括矩形的周长、求面积、取举行的长度、取矩形的长度、取矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。
11、编写一个类,要求带有一个索引器可以存储100个整型变量。
12、编写一个类Cal1,实现加、减两种运算,然后,编写另一个派生类Cal2,实现乘、除两种运算。
13、建立三个类:具名、成人、官员。
居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。
要求每个类中都提供数据输入输出的功能。
14、编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
15、设计一个类,要求用事件每10秒报告机器的当前时间。
C语言上机程序设计题库及答案

C语言上机程序设计题库及答案在计算机科学与技术领域中,C语言是一门非常重要的编程语言。
作为高级语言,C语言广泛应用于软件开发、系统编程以及嵌入式系统等领域。
针对C语言的上机程序设计,我整理了一份题库,并提供了相应的答案,供学习和参考使用。
1. 题目1:求给定整数数组中的最大值题目描述:给定一个整数数组,编写一个程序找到数组中的最大值,并将其输出。
代码示例:```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, n);printf("The maximum value is: %d\n", max);return 0;}```2. 题目2:判断一个字符串是否为回文字符串题目描述:给定一个字符串,判断它是否为回文字符串(正读和倒读都相同)。
编写一个程序实现此功能。
代码示例:```c#include <stdio.h>#include <string.h>int isPalindrome(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {if (str[i] != str[len - i - 1]) {return 0;}}return 1;}int main() {char str[] = "level";if (isPalindrome(str)) {printf("The string is a palindrome.\n");}else {printf("The string is not a palindrome.\n");}return 0;}```3. 题目3:计算阶乘题目描述:给定一个正整数,编写一个程序计算其阶乘。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、10个人的成绩存放在score数组中,编写函数fun,求出平均分,并作为函数值返回,且输出不及格人数。
#include<stdio.h>float fun (int a[10]){int i,aver,sum=0;for(i=0;i<10;i++)sum=sum+a[i];aver=sum/10;return aver;}void main(){int i,j=0,a[10]={10,20,30,40,50,60,70,80,90,100};float aver;for(i=0;i<10;i++)if(a[i]<60)j++;aver=fun (a);printf("10个人的成绩平均分为:%5.2f\n",aver);printf("\n");printf("不及格人数:%d\n",j);}2、求出1到100之能被7或者11整除,但不能同时被7和11整除的所有整数,并将他们放在指定的数组a中。
#include<stdio.h>void main(){int i,n,a[500];n = fun(a);for(i = 0; i < n; i++)printf("%8d",a[i]);}int fun (int a[]){int i = 7, j = 0;for(; i <= 100; i++)if ((i % 7 == 0 || i % 11 == 0)&&( !(i % 7== 0 && i % 11 == 0) ) )a[j++] = i;return j ;}3、求方程2=++cbxax的解。
#include<stdio.h>#include<math.h>void main(){float a,b,c,d,x1,x2,m,n;printf("请输入方程的3个系数,a,b,c:");scanf("%f,%f,%f",&a,&b,&c);printf("该方程\n");if(fabs(a)<=1e-6){if(fabs(b)<=1e-6){if(fabs(c)<=1e-6)printf("有无穷多个解\n");elseprintf("无解\n");}else printf("有一个根:%8.4f\n",-c/b);}else{d=b*b-4*a*c;if(fabs(d)<=1e-6)printf("有两个相等的实根:%8.4f\n",-b/(2*a));elseif(d>1e-6){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("有两个不等的实根:%8.4f和%8.4f\n",x1,x2);}else{m=-b/(2*a);n=sqrt(-d)/(2*a);printf("有两个复根:\n");printf("%8.4f+%8.4fi\n",m,n);printf("%8.4f-%8.4fi\n",m,n);}}}4、给出一个百分制成绩,要求输出成绩等级A、B、C、D、E,90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:当输入分数为负值,或大于100时,通知用户“输入数据错误,重新输入”。
#include<stdio.h>void main(){float x;char y;printf("输入学生成绩:x=");scanf("%f",&x);while(x>100||x<0){printf("输入错误,请重新输入学生成绩:x=");scanf("%f",&x);}if(x>=90)y='A';elseif(x>=80)y='B';elseif(x>=70)y='C';elseif(x>=60)y='D';elsey='E';printf("\n学生的等级为:y=%c\n",y);}5、求数组中最大元素在数组中的下标并存放在指针k所指的储存单元中。
# include <stdio.h>void fun(int *s, int t , int *k){int i ,max;max=s[0];for (i=0;i<t;i++)if (s[i]>max){max=s[i];*k=i;}void main( ){int a[10]={876,675,896,101,301,401,980,431,451,777}, k ;fun(a,10, &k);printf("最大值在a中的位置为:i=%d\n最大值为:%d\n", k, a[k]);}6、编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n 通过形参传入。
S=1+1/(1+2)+1/(1+2+3)+……+1/(1+2+3+4+……+n)。
#include<stdio.h>float fun(int n){int i;float s=1.0,t=1.0;for(i=2;i<=n;i++){t=t+i;s=s+1/t;}return s;}void main(){float y;int n;printf("输入n的值:\n");scanf("%d",&n);y=fun(n);printf("y=%f\n",y);}7、定义了7×7的二维数组,并在主函数中自动赋值。
编写函数 fun(int a[][7]),该函数的功能是:使数组左下半三角元素中的值全部置成0。
#include<stdio.h>int fun(int a[][7]){int i,j;for(i=0;i<7;i++)for(j=0;j<7;j++){if(i>j)a[i][j]=0;}}void main(){int a[7][7],i,j;for(i=0;i<7;i++){for(j=0;j<7;j++){a[i][j]=i+j+1;printf("%3d",a[i][j]);}printf("\n");}fun(a);printf("输出处理后的数组a:\n");for(i=0;i<7;i++){for(j=0;j<7;j++){printf("%3d",a[i][j]);}printf("\n");}}8、编写一个函数void fun(int tt[5][6],int pp[6]),tt指向一个5行6列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。
二维数组中的数已在主函数中初始化。
#include <stdio.h>void fun(int tt[5][6],int pp[6]){ int i,j,min;for(j = 0;j < 6;j++){ min = tt[0][j];for(i= 0;i < 5;i++){ if(tt[i][j] < min)min = tt[i][j];}pp[j] = min;}}void main(){intt[5][6]={{68,56,32,44,54,12},{14,56,24,47,88,58},{42,85,22,75,44,56},{45,12,3,5 ,78,45},{45,65,25,75,85,41}};int p[6],i,j,k;printf("The riginal data is:\n");for(i = 0;i < 5;i++){ for(j = 0;j < 6;j++)printf("%6d",t[i][j]);printf("\n");}fun(t,p);printf("\n二维函数组每列中最小元素为:\n");for(k = 0;k < 6;k++)printf("%4d",p[k]);printf("\n");}9、求出4行5列的二维数组周边元素之和。
#include<stdio.h>void main(){int a[4][5],i,j,sum=0,sum1=0,sum2=0;printf("请输入4*5矩阵数据:");for(i=0;i<4;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);{for(i=0;i<4;i++)sum1=sum1+a[i][0]+a[i][4];}{for(j=0;j<5;j++)sum2=sum2+a[0][j]+a[3][j];}sum=sum1+sum2-a[0][0]-a[0][4]-a[3][0]-a[3][4];printf("矩阵周边元素之和为:%d\n",sum);}10、编写程序,把字符串中的容逆置(不准使用多个字符数组)。
#include<stdio.h>void main(){char a[80];char t;int i,n;printf("输入一行字符串:\n");gets(a);n=strlen(a);for(i=0;i<=n/2;i++){t=a[i];a[i]=a[n-i-1];a[n-i-1]=t;}printf("字符串中的容逆置为:\n");puts(a);}11、编写程序,从字符串中删除指定的字符,同一字母的大、小写按不同字符处理。
并把删除好的字符以字符串的形式输出(不准使用多个字符数组)。