青岛理工大学c语言程序打印版
- 格式:pdf
- 大小:92.96 KB
- 文档页数:15
学号:姓名:班级:。
密。
封。
线。
计算、网络、软件专业2014 年级全院班2014~2015学年第1 学期《C程序设计基础》课试卷试卷类型:测试卷试题要求: 1.试题后标注本题得分;2.试卷应附有评卷用标准答案,并有每题每步得分标准;3.试卷必须提前一周送考试中心;4.考试前到指定地点领取试卷;5.考生不得拆散试卷,否则试卷无效。
学号:姓名:班级:。
密。
封。
线。
计算、网络、软件专业2014 年级全院班2014~2015学年第1 学期《C程序设计基础》课试卷试卷类型:测试卷青岛理工大学试卷纸共 4 页第1 页试题要求: 1.试题后标注本题得分;2.试卷应附有评卷用标准答案,并有每题每步得分标准;3.试卷必须提前一周送考试中心;4.考试前到指定地点领取试卷;5.考生不得拆散试卷,否则试卷无效。
学号:姓名:班级:。
密。
封。
线。
青岛理工大学试卷纸共 4 页第 4 页答案:一、单选题1~5AACDD 6~10 ABDAD 11~15 BDDAB 16~20 BDDAC二. 填空1、函数。
2、编译链接3、 14、 05、字母、下划线、数字。
6、非07、a=1,b=3,c=28 、”a”是字符串常量,而‟a‟是字符常量9 、 3.141593,3.1416,3.14210、条件运算符11、112、a%3==0&&a%5!=013、; }14、f=++p;15、1 4三、程序结果填空题1、答案:Sum of the digits in 26587 is 282 、8 10 123、j=814、x=8,y=45、326、i=123,j=457、m=110, n=48、c1=a c2=A c3=A c4=Ac1=97 c2=65 c3=65 c4=65sum=95四编程题1、答案:#include<stdio.h>void main(){int a=3,b=4;char c;scanf("%c",c);switch(c){ case …+‟ : printf("\n %d",a+b); break;case …-‟: printf("\n %d",a-b); break;case …*‟: printf("\n %d",a*b); break;case …/‟:printf("\n %d",a/b); break;}}2、答案:main(){ int i,g,s,b;for(i=100;i<=999;i++){ b=i/100;s=(i%100)/10;g=i%10;if(i==(b*b*b+s*s*s+g*g*g))printf(“%d ”,i);} }3、答案:#include<stdio.h>main(){ int i,j;for (i=1;i<=5;i++){for (j=1;j<=i;j++)printf("*");printf("\n");}}。
课程实验报告课程名称计算机操作系统班级软件132 实验日期 4.10 姓名孙玉东学号201307217 实验成绩实验名称实验3 进程并发与同步实验目的及要求1、加深对进程概念的理解,区分进程并发执行与串行执行;2、掌握进程并发执行的原理,理解进程并发执行的特点;3、了解fork( )系统调用的返回值,掌握用fork()创建进程的方法;熟悉wait、exit等系统调用;4、能利用相应的系统调用实现进程树与进程间的同步实验环境Vmware/ubuntu/windows实验内容1、编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。
要求多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。
要求有运行结果截图与结果分析2、连续4个fork()的进程家族树,family1-1.c程序清单如下:#include <stdio.h>main(){fork();fork();fork();fork();printf(“A\n”);}请根据程序运行结果,画出进程家族树,并分析原因。
3、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。
写出相应的同步控制,并分析运行结果。
4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -l”,已知该键盘命令的路径与文件名为:/bin/ls。
父进程创建子进程,并加载./child2程序。
写出相应的程序代码并分析程序运行结果。
算法描述及实验步骤1使用系统函数:fork()创建子进程,使用循环来创建避免创建失败2,在主进程中创建了4个子进程,每个子进程建立后续的几个进程及输出语句。
程序设计基础(C语言)(山东联盟)智慧树知到课后章节答案2023年下青岛理工大学青岛理工大学第一章测试1.以下叙述中正确的是()。
答案:用C程序实现的算法可以没有输入但必须要有输出2.以下不能定义为用户标识符的是()。
答案:printf3.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。
答案:连接符4.以下C语言用户标识符中,不合法的是()。
答案:a--b5.结构化程序由三种基本结构组成,三种基本结构组成的算法()。
答案:可以完成任何复杂的任务6.以下叙述中正确的是()。
答案:C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束7.C语言源程序名的后缀是()。
.c8.以下叙述中错误的是()。
答案:C程序在书写时,有严格的缩进要求,否则不能编译通过9.下列关于C语言用户标识符的叙述中正确的是()。
答案:用户标识符中不可以出现中划线,但可以出现下划线10.下列4个选项中,()是合法的用户自定义标识符。
答案:_isw第二章测试1.下列选项中,()可以将x、y定义成double类型变量,并赋同一初值3.14。
double x=3.14, y=3.14;2.若变量已正确定义并赋值,表达式()不符合C语言语法。
答案:3.14%23.下列表达式中值为0的是()。
答案:3/54.以下选项中,()是不正确的字符常量。
答案:"a"5.以下选项中不正确的整型常量是()。
答案:1,9006.以下正确的字符串常量是()。
答案:"5111"7.假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式的表达式是()。
答案:1.0/a/b/c8.以下能正确定义且赋初值的语句是()。
答案:char ch='A';9.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,32+z)后,x的值为()。
答案:4810.C语言中,运算对象必须是整型数的运算符是()。
2022年青岛理工大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。
2、C语言的源程序必须通过【】和【】后,才能被计算机执行。
3、结构化程序由________、________ 、________ 3种基本结构组成。
4、表达式pow(2.8,sqrt(double(x))值的数据类型为_______。
5、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双精度实型变量,用关键字_______定义字符型变量。
6、设x的二进制数是11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是_______。
7、鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。
请填空。
for(x=0;x<=30;x++){y=30一x;if(_______)printf("%d,%d\n",x,y);}8、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。
9、设有如下定义:#define SWAP(T,X,Y){T=X;X=Y;Y=T;}以下程序段将通过调用宏实现变量x和y内容的交换,请填空。
Double x=2.5,y=6.4,z;SWAP(_______);10、若有以下定义和语句:int*p[3],a[6],i;for(i=0;i<3;i++)p[i]=8&a[2*i];则*p[0]引用的是a数组元素_______,*(p[1]+1)引用的是a数组元素_______。
二、选择题11、以下正确的叙述是( )。
课件程序打印版1. 1+(1+2)+....+#include<stdio.h>int main(){int s,t,n;int i,j;printf ("please enter the num:") ;scanf ("%d",&n) ;s=0;for (i=1;i<=n;i++){t=0;for (j=1;j<=i;j++)t+=j ;s=s+t ;}printf ("s=%d",s);}2. 1-100相加#include <stdio.h>int main(){int i,s=0;for(i=1;i<=100;i++)s=s+i;printf("和=%d",s);}3.求派的近似值#include <stdio.h>#include <stdlib.h>int main(){int sign=1;double pi=0.0,n=1.0,term=1.0;while(fabs(term)>=1e-4){pi=pi+term;n=n+2;sign=-sign;term=sign/n;}pi=pi*4;printf("pi=%10.8f\n",pi);return 0;}4. 5个数相加#include <stdio.h>int main(){int i=0;float s,x;while(i<5){scanf("%f",&x);s=s+x;i++;}printf("s=%f",s);}5. 10数求最大,输出位置#include <stdio.h>int main(){int i,a[10],pos=0;printf("enter 10 number:");for(i=0;i<10;i++){scanf("%d",&a[i]);if(a[i]>a[pos])pos=i;}printf("%d",pos+1);return 0;}6. 不是回车不停止输入#include <stdio.h>int main(){char ch;while ( (ch = getchar())!= '\n')putchar ( ch ) ; }7. 打印1-100每行5个#include <stdio.h>int main(){int i;for(i=1;i<=100;i++){printf("%d",i);if(i%5==0)printf("\n");}}8.打印n个空格void blank(int n){int i;for(i=1;i<n;i++)printf(" ");}#include <stdio.h>int main(){int a;printf("Please input to print the number of Spaces:");scanf("%d",&a);blank(a);printf("<---Print the end!");return 0;}9. 打印九九表#include <stdio.h>#include <stdlib.h>int main(){int i,j;for(i=1;i<10;i++)for(j=1;j<10;j++){printf("%d ",i*j);if(j%9==0)printf("\n");}}10. 反顺序输出5个数字#include <stdio.h>int main(){int i,a[5],b[5],j;for(i=0,j=4;i<5;i++,j--){scanf("%d",&a[i]);b[j]=a[i];}for(i=0;i<5;i++)printf("%d ",b[i]);}11. 分别求奇数和偶数的和#include<stdio.h>int main(){int n,k, sum1=0,sum2=0;scanf("%d",&n);for(k=1;k<=n;k++){if(k%2==0)sum1=sum1+k;elsesum2=sum2+k;}printf("偶数之和:%d\n奇数之和:%d\n",sum1,sum2);return 0;}12. 计算(1!)2+(2!)2+(3!)2+(4!)2+(5!)2#include <stdio.h>int main(){int fact(int n);printf("(1!)2+(2!)2+(3!)2+(4!)2+(5!)2=%d",fa ct(5));return 0;}int fact(int n){int w,t=1,s=0,i;for(i=1;i<=n;i++){t=t*i;w=t*t;s=s+w;}return s;}13. 将一个字符串复制到另一个数组#include <stdio.h>#include <string.h>int main(){int n,i;char a[100],b[100];gets(a);n=strlen(a);for(i=0;i<n;i++){b[i]=a[i];printf("%c",b[i]);}}14. 冒泡法6数字排序#include <stdio.h>int main(){int i,j,a[6],t;printf("enter 6 number:");for(i=0;i<6;i++)scanf("%d",&a[i]);for(i=0;i<5;i++)for(j=0;j<5-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<6;i++)printf("%d ",a[i]);}15. 判断闰年1#include<stdio.h>int main(){int y;scanf("%d",&y);if(y%4==0&&y%100!=0||y%400==0) printf("ok\n");elseprintf("no\n");}16. 判断闰年2#include <stdio.h>int main(){int year,leap;printf("enter year:");scanf("%d",&year);if(year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if(leap)printf("%d is",year);elseprintf("%d is not",year);printf(" a leap year.\n");return 0;}17. 判断素数#include<stdio.h>int main(){int x,i,p=1;printf("input the number of x:");scanf("%d",&x);for(i=2;i<=sqrt(x);i++){if(x%i==0){p=0;break;}}if(p==1)printf("是素数");if(p==0)printf("不是素数");}18. 求Fibonacei数列的前40项#include<stdio.h>int main(void){int i;long int f[41];f[1]=1;f[2]=1;for(i=3;i<=40;i++)f[i]=f[i-1]+f[i-2];for(i=1;i<=40;i++){printf("%ld ",f[i]);if(i%5==0)printf("\n");}}19. 求各位数之积#include<stdio.h>int main(){ long x,t=1,n;printf ( "Please enter a number:") ;scanf ("%ld",&x ) ;do{n=x%10;t=t*n;x=x/10 ;}while(x) ;printf("t = %ld\n",t);}20. 求阶乘的函数int factorial(int n){int i,s=1;for(i=2;i<=n;i++)s=s*i;return s;}#include <stdio.h>int main(){int a;printf("Please enter the requested factorial Numbers:");scanf("%d",&a);printf("Ask factorial =%d",factorial(a));}21. 求某一数阶乘的递归函数double fact (int n){double f;if(n==0 || n==1) f=1;else f=n*fact(n-1);return f;}#include<stdio.h>int main(){double y;int n;printf("enter the number:");scanf("%d",&n);printf("次方程=%lf",fact(n));}22. 求三个数最大数#include<stdio.h>int main(){int i,j,k,max;scanf("%d%d%d",&i,&j,&k);max=i>j?i:j;if(max>k)printf("MAX=%d",max);elseprintf("MAX=%d",k);}23. 求输入数据的最大最小#include <stdio.h>int main(){int a,n,i,MAX,MIN;scanf("%d",&n);scanf("%d",&MIN);MAX=MIN;for(i=0;i<n-1;i++){scanf("%d",&a);if(a>=MAX)MAX=a;if(a<=MIN)MIN=a;}printf("MAX=%d\nMIN=%d",MAX,MIN); }24. 三个数比较大小#include<stdio.h>int main(){int i,j,k,t;scanf("%d%d%d",&i,&j,&k);if(i>j){t=i;i=j;j=t;}if(i>k){t=i;i=k;k=t;}if(j>k){t=j;j=k;k=t;}printf("%d %d %d",i,j,k);}25. 三行四列找最大及位置#include <stdio.h>#include <stdlib.h>int main(){int a[3][4],i,j,row=0,col=0;printf("enter 12 number:");for(i=0;i<3;i++)for(j=0;j<4;j++){scanf("%d",&a[i][j]);if(a[i][j]>a[row][col]){row=i;col=j;}}printf("最大值是:%d\n所在行:%d 所在列:%d",a[row][col],row+1,col+1);}26. 实现5!#include <stdio.h>int main(){int i,s=1;for(i=2;i<=5;i++){s=s*i;}printf("5!=%d",s);}27. 实现X的n次冪#include <stdio.h>int main(){int i,k,j,t;scanf("%d%d",&k,&i);for(j=0;j<i-1;j++)k=k*k;printf("%d",k);}28. 输出1-1000素数#include<stdio.h>#include<math.h>int main(){int i,j,k;for(i=2;i<1000;i++){k=0;for(j=2;j<=sqrt(i);j++)if(i%j==0){k=1;break;}if(k==0)printf("%d ",i);}}29. 输入成绩输出等级#include<stdio.h>int main(){int a,k;scanf("%d",&k);a=k/10;switch(a){case 10:case 9:printf("A\n");break;case 8 :printf("B\n");break;case 7:printf("C\n");break;case 6:printf("D\n");break;case 5:case 4:case 3:case 2:case 1:case 0:printf("E\n");break;default:printf("error\n");break;}}30. 统计名字#include <stdio.h>#include <stdlib.h>int main(){char a[50][10];int i,n;printf("您想输入几个人名?\n");scanf("%d\n",&n);for(i=0;i<n;i++)gets(a[i]);printf("以M开头的如下:\n");for(i=0;i<n;i++)if(a[i][0]=='M')printf("%s\n",a[i]);}31. 小写大写转化#include<stdio.h>int main(){char c;while ((c=getchar())!='\n'){if ((c >= 'a')&&(c <= 'z')){c =c-32;}printf("%c", c);}return 0;}32. 选择法6数排序#include<stdio.h>int main(){int i,j,k,t,a[6];for(i=0;i<6;i++)scanf("%d",&a[i]);printf("\n");for(i=0;i<5;i++){k=i;for(j=i+1;j<6;j++)if(a[k]>a[j])k=j;t=a[i];a[i]=a[k];a[k]=t;}printf("The sorted numbers:");for(i=0;i<6;i++)printf("%d ",a[i]);printf("\n");}33. 用函数求两个数最大值#include <stdio.h>int main(){int MAX(int x,int y);int a,b;printf("enter 2 number:");scanf("%d%d",&a,&b);printf("MAX=%d",MAX(a,b));}int MAX(int x,int y){int m;m=x>y?x:y;return m;}34. 用指针函数删除下标为k的元素#include <stdio.h>int main(){void sub(int *p,int *q,int n);int a[10]={1,2,3,4,5,6,7,8,9,10};int *p,n,i,*q;printf("Want to remove the subscription:");scanf("%d",&n);sub(&a[n],&a[n+1],n);for(i=0;i<9;i++)printf("%d ",a[i]);}void sub(int *p,int *q,int n){int i;for(i=0;i<10-n;i++){*p=*q;p++;q++;}}35. 用函数验证素数#include<stdio.h>int main(){int prime(int n);int a,b;printf("enter the number:");。