大连理工大学c语言题库3
大连理工大学C语言期中模拟试题3

一、1.下面四个选项中,均是不合法的用户标识符的选项是(D)。
A、float la0 _AB、A P_0 doC、_123 temp intD、b-a goto int2.表达式18/4*sqrt(4.0)/8值的数据类型为(A)。
A、doubleB、floatC、intD、不确定3.设:long w=65535,t=7654321;根据下面的输出结果,正确的程序段是(C ).w=65535,t=7654321endA、printf("w=%5d,t=%7d\n",w,t);printf("%s","end');B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end");C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end");D、printf("w=%5u,t=%7u\n",w,t);printf( "end");4.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。
哪个数作为逻辑“假”值(A)。
A、0B、-1C、非零的数D、15.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。
哪个数作为逻辑“假”值(A)。
A、0B、-1C、非零的数D、16.在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是(B)。
A、(E>0||E<0)B、(E==0)C、(!E==0)D、(E!=0)7.下面有关 for 循环的正确描述是(C)。
A、for 循环是先执行循环体语句,后判断表达式B、在 for 循环中,不能用 break 语句跳出循环体C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来D、for 循环只能用于循环次数已经确定的情况8.在C语言中,一维数组的定义方式为:类型说明符数组名(B)。
C编程(C语言程序设计,大连理工大学MOOC)

C编程(C语⾔程序设计,⼤连理⼯⼤学MOOC)仅作参考,请指正(都提交通过,但是也有错误,第22题的错误,已经修正)1、Hello World!1 #include <stdio.h>2int main()3 {4 printf("Hello World!");5return0;6 }View Code2、我爱编程1 #include <stdio.h>2int main()3 {4 printf("Hello C!\n");5 printf("I like programming.");6return0;7 }View Code3、计算两个整数的乘积1 #include <stdio.h>2int main()3 {4int a,b;5 scanf("%d%d",&a,&b);6 printf("%d",a*b);7return0;8 }View Code4、计算圆的⾯积1 #include <stdio.h>2 #include <string.h>3#define PI 3.14154int main()5 {6 printf("Area=%5.2f\n", PI*4.3*4.3);7return0;8 }View Code5、计算平⽅根1 #include <stdio.h>2 #include <math.h>3int main()4 {5double x;6 scanf("%lf", &x);7 printf("%f\n", sqrt(x));8return0;9 }View Code6、输出逆序数1 #include <stdio.h>2 #include <string.h>3 #include <math.h>4int main()5 {8while(x)9 {10 y = y*10 + x%10;11 x /= 10;12 }13 printf("y=%d\n", y);14return0;15 }View Code7、交换两个变量1 #include<stdio.h>2 #include<math.h>34int main()5 {6int a,b,t;7 scanf("%d,%d",&a,&b);8 t = a;9 a = b;10 b = t;11 printf("%d,%d",a,b);12return0;13 }View Code8、输出字符ASCII码1 #include<stdio.h>2 #include<math.h>34int main()5 {6int a;7 a = getchar();8 printf("ASCII=%d",a);9return0;10 }View Code9、求⼀元⼆次⽅程的两个实根1 #include<stdio.h>2 #include<math.h>34int main()5 {6float x1,x2;7 x1 = (-1 + sqrt(1+4*2))/2.0;8 x2 = (-1 - sqrt(1+4*2))/2.0;9 printf("x1=%.4f\n",x1);10 printf("x2=%.4f\n",x2);11return0;12 }View Code10、计算银⾏存款本息1 #include<stdio.h>2 #include<math.h>34int main()5 {6int money,year;7double rate,sum = 0;8 scanf("%d%d%lf",&money,&year,&rate);9 sum = money*pow((1+rate),year);1011 printf("sum=%7.2f",sum);12return0;13 }View Code1 #include <stdio.h>2 #include <stdio.h>3 #include <stdlib.h>45int main()6 {7char ch;8 ch = getchar();9if(ch>='a'&&ch<='z')10 ch -= 32;11else12 ch += 32;13 putchar(ch);14return0;15 }View Code12、计算分段函数1 #include <stdio.h>2int main(void)3 {4double x, y;5 scanf("%lf",&x);6if ( x<0 )7 y=0;8else if( x<=15 )9 y=4*x/3;10else11 y=2.5*x-10.5;12 printf("y=%.2f",y);13return0;14 }View Code13、百分制成绩转换为五级分制成绩1 #include <stdio.h>2 #include <stdio.h>3 #include <stdlib.h>45int main()6 {7float achievment;8 scanf("%f",&achievment);910int a = achievment;11char ch;1213switch(a/10){14case10:15case9:ch = 'A';break;16case8:ch = 'B';break;17case7:ch = 'C';break;18case6:ch = 'D';break;19default:ch = 'E';20 }21 printf("grade:%c\n",ch);2223return0;24 }View Code14、输出⽔仙花数1 #include <stdio.h>2 #include <stdio.h>3 #include <stdlib.h>45int main()6 {7int i;8 scanf("%d",&i);910int a = i%10, b = i/10%10, c = i/100;14 printf("%d不是⽔仙花数!",i);1516return0;17 }View Code15、⽤for语句实现判断并求和1 #include<stdio.h>23int main()4 {5int sum = 0;6for(int i=1; i<=100; ++i)7 {8if(i%3==0 && i%5==1)9 sum += i;10 }11 printf("sum=%d",sum);1213return0;14 }View Code16、⽤do while 语句实现从键盘输⼊⼀组整数,求平均值 1 #include<stdio.h>23int main()4 {5int i=0, x;6float sum = 0;7do{8 scanf("%d",&x);9if(x<0) break;10 sum += x;11 i++;12 }while(x>=0);13 printf("AVE=%.2f\n",sum/i);14return0;15 }View Code17、⽤while语句实现计算圆周率 pi (3.14) 的近似值1 #include<stdio.h>2 #include <math.h>3#define EPS 1e-54int main()5 {6float pi = 0, sign = 1, x = 1;78while(fabs(sign/x) > EPS)9 {10 pi += sign/x;11 x += 2;12 sign = -sign;13 }14 printf("pi=%.2f\n",pi*4);15return0;16 }View Code18、求两个整数的最⼤公约数1 #include<stdio.h>2 #include<stdlib.h>34int GCD(int x, int y);5int main()6 {7int a,b;8 scanf("%d%d",&a,&b);9 printf("GCD=%d\n",GCD(a,b));1213int GCD(int x, int y){14return y == 0 ? x : GCD(y, x%y);15 }View Code19、找素数1 #include<stdio.h>2 #include<stdlib.h>34int isPrime(int x);5int main()6 {7int a;8 scanf("%d",&a);9for(int i=a+1;;++i){10if(isPrime(i)){11 printf("prime=%d\n",i);12break;13 }14 }15return0;16 }1718int isPrime(int x){19for(int i=2; i<x; ++i)20if(x%i==0)21return0;22return1;23 }View Code20、斐波那契数列求和1 #include<stdio.h>2 #include<stdlib.h>34int main()5 {6int sum = 0, a=1,b=1;7for(int i=0;i<20;i+=2){8 sum += a+b;9 a = a+b;10 b = a+b;11 }12 printf("sum=%d\n",sum);13return0;14 }View Code21、逆序存放数据1 #include<stdio.h>2#define N 1003int main()4 {5int arr[N] = {0}, n=6;6for(int i=n-1; i>=0; --i)7 scanf("%d",&arr[i]);8for(int j=0; j<n; ++j)9 printf("%d\n",arr[j]);10return0;11 }View Code22、找出⼀维整型数组中的次最⼤值#include<stdio.h>#define N 5/*设次⼤值⼀定存在*/int main(){int i, j, arr[N+1] = {0};scanf("%d",&arr[i]);/* 冒泡排序 */for(i=0; i<N-1; ++i)for(j=0; j<N-i-1; ++j)if(arr[j]<arr[j+1]){int t = arr[j];arr[j] = arr[j+1];arr[j+1] = t;}/* 求次最⼤值下标i*/for(i=1; arr[0]==arr[i] && i<N; ++i);/*if(i==N)printf("次⼤值不存在!\n");*/printf("次最⼤值=%d",arr[i]);return0;}View Code/*求最⼤值、次⼤值可以不⽤排序*/#include <stdio.h>#define N 5int main(){int i, arr[N] = {0};int max1, max2;scanf("%d%d",&arr[0],&arr[1]);max1 = max2 = arr[0];arr[1] > max1 ? (max1 = arr[1]) : (max2 = arr[1]); for(i=2; i<N; ++i){scanf("%d",&arr[i]);if(arr[i]>max1){max2 = max1;max1 = arr[i];}else if(arr[i]>max2){max2 = arr[i];}}/*if(max1==max2)printf("次⼤值不存在!\n");elseprintf("次最⼤值=%d",max2);*//*次最⼤值 max2 是存在的 */printf("次最⼤值=%d",max2);return0;}View Code#include <stdio.h>#include <limits.h>#define N 5int main(){int i, arr[N] = {0};int max1, max2;max1 = max2 = INT_MIN;for(i=0; i<N; ++i){scanf("%d",&arr[i]);if(arr[i]>max1){max2 = max1;max1 = arr[i];}else if(arr[i]>max2){max2 = arr[i];}}/* 次最⼤值 max2 */if(max1 == INT_MIN)printf("次⼤值不存在!\n");elseprintf("次最⼤值=%d",max2);View Code23、调整最⼤值的位置1 #include<stdio.h>2#define N 1003int main()4 {5int arr[N] = {0}, n=6, max=0, maxi=0;6 scanf("%d",&arr[0]);7 max=arr[0];89for(int i=1; i<n; ++i){10 scanf("%d",&arr[i]);11if(arr[i]>max){12 max = arr[i];13 maxi = i;14 }1516 }17int t = arr[n-1];18 arr[n-1] = arr[maxi];19 arr[maxi] = t;2021for(int j=0; j<n; ++j)22 printf("%d\n",arr[j]);23return0;24 }View Code24、连接两个字符串1 #include<stdio.h>2 #include<string.h>3#define N 1004int main()5 {6char a[2*N] = "", b[N] = "";7 scanf("%s%s",a,b);8/* strcpy(&a[strlen(a)],b);//没有⽤strcat⽤的strcpy 9*/10//不⽤函数11int i;12for(i=0; a[i]; ++i);//求字符串'\0'下标13char *p = a+i, *q = b;14while(*q)15 {16 *p++ = *q++;17 }18 *p = '\0';1920 printf("%s\n",a);21return0;22 }View Code1 #include<stdio.h>2 #include<string.h>3#define N 1004int main()5 {6char a[2*N] = "", b[N] = "";7 scanf("%s%s",a,b);89char *p = a, *q = b;10while(*p) p++;11while((*p++=*q++)!='\0');1213 printf("%s\n",a);14return0;15 }View Code25、求矩阵外围元素之和4 {5int sum=0, n=3;6int *arr = (int*)malloc(sizeof(int)*n*n); //⼀维模拟⼆维数组 78for(int i=0; i<n*n; ++i)9 {10 scanf("%d",&arr[i]);11 }1213for(int i=0; i<n; ++i)14 {15for(int j=0; j<n; ++j)16 {17if(i==0||i==n-1 || j==0|| j==n-1 )18 {19 sum += arr[i*n+j]; //⼀⾏n个20 }21 }22 }2324 printf("%d",sum);2526return0;27 }View Code26、求矩阵主对⾓线和副对⾓线元素之和1 #include <stdio.h>2#define N 53int main()4 {5char str[N][N];6int i,j,sum=0;78for(i=0; i<N; ++i)9for(j=0; j<N; ++j)10 scanf("%d",&str[i][j]);1112for(i=0; i<N; ++i)13for(j=0; j<N; ++j)14 {15if(i==j)16 sum += str[i][j];17if(i==N-j-1)18 sum += str[i][j];19 }20 printf("sum=%d\n",sum);21return0;22 }View Code27、将字符串的⼩写字母转换为⼤写字母1 #include <stdio.h>2#define N 10003int main()4 {5char str[N]="";6int i=0;7 gets(str);89while(str[i]){10if(str[i]>='a'&&str[i]<='z')11 str[i] -= 32;12 i++;13 }14 printf("%s\n",str);15return0;16 }View Code28、编写函数,计算银⾏存款本息并输出1 #include <stdio.h>5double sum = money;6while(year--){7 sum = sum*(1+rate);8 }9return sum;10 }11int main()12 {13int money, year;14double rate, sum=0;15 scanf("%d%d%lf",&money,&year,&rate);16 sum = fun(money,year,rate);17 printf("sum=%.2f",sum);18return0;19 }View Code29、数值转换1/*位运算*/2 #include <stdio.h>3void fun(int x)4 {5int j=31;/*按32位定义*/6while(!((x&(1<<j))>>j))/*去前⾯的0*/7 j--;8for(; j>=0; j--)/*按位输出*/9 printf("%d", (x&(1<<j))>>j);10 }11int main()12 {13int x;14 scanf("%d",&x);15 fun(x);16return0;17 }View Code30、求⼀组数中⼤于平均值的数的个数 1 #include <stdio.h>2#define N 10034int main()5 {6int num[N] = {0},count=0;7double sum = 0;8for(int i=0; i<10; ++i){9 scanf("%d",&num[i]);10 sum += num[i];11 }12for(int j=0; j<10; ++j)13if(num[j]>sum/10)14 count++;15 printf("%d",count);16return0;17 }View Code31、求x的n次⽅1 #include <stdio.h>2double cube(double x,int n)3 {4if(n ==1)5return x;6else7return x*cube(x,n-1);8 }9int main()10 {11double x,y;12int n;13 scanf("%lf%d",&x,&n);14 y=cube(x,n);15 printf("%f",y);View Code32、输出最⼤、最⼩数1 #include <stdio.h>2void fun(int *arr,int *max,int *min){3 *max = *min = arr[0];4for(int i=1; i<10; ++i){5if(arr[i]>*max)6 *max = arr[i];7if(arr[i]<*min)8 *min = arr[i];9 }10 }11int main()12 {13int max,min;14int arr[10] = {0};15for(int i=0; i<10; ++i){16 scanf("%d",&arr[i]);17 }18 fun(arr,&max,&min);19 printf("max=%d,min=%d",max,min);20return0;21 }View Code33、任意整数转换为千分位分隔的字符形式1 #include <stdio.h>2#define N 1003int main()4 {5int n;6 scanf("%d",&n);7int arr[N] = {0},index = 0;8while(n)9 {10 arr[index++] = n%10;11 n /= 10;12 }13for(int i=index-1; i>=0; --i)14 {15 printf("%d",arr[i]);16if(i%3==0&&i)17 printf(",");18 }19return0;20 }View Code34、利⽤指针编写程序,统计字符串的长度1 #include <stdio.h>2#define N 1003int main()4 {5char str[N] = "";6 gets(str);7char *p = str;8int len = 0;9while(*p)10 {11 len++;12 p++;13 }14 printf("Length of the string is %d\n",len);15return0;16 }View Code35、利⽤指针编程,将数组中所有元素的值对称交换 1 #include <stdio.h>2#define N 105int arr[N] = {0};6for(int i=0; i<N; ++i)7 scanf("%d",&arr[i]);8int *p = arr, *q = arr+N-1;9while(p<q)10 {11int t = *p;12 *p = *q;13 *q = t;14 p++, q--;15 }16for(int j=0; j<N; ++j)17 printf("%2d",arr[j]);18return0;19 }View Code36、利⽤指针编写程序,求⼀维数组中的最⼤和最⼩的元素值1 #include <stdio.h>2#define N 103int main()4 {5int arr[N] = {0};6for(int i=0; i<N; ++i)7 scanf("%d",&arr[i]);8int max, min;9 max = min = arr[0];10for(int j=1; j<N; ++j)11 {12if(arr[j]>max)13 max = arr[j];14if(arr[j]<min)15 min = arr[j];16 }17 printf("max=%d,min=%d",max,min);18return0;19 }View Code37、利⽤指针编写⼀函数,输⼊3个整数,按由⼤到⼩的顺序将它们输出1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4#define N 25656void swap(int *a, int *b)7 {8int t = *a;9 *a = *b;10 *b = t;11 }12int main( )13 {14int arr[N] = {0};15for(int i=0; i<3; ++i)16 scanf("%d",&arr[i]);17if(arr[0]<arr[1])18 swap(&arr[0],&arr[1]);19if(arr[0]<arr[2])20 swap(&arr[0],&arr[2]);21if(arr[1]<arr[2])22 swap(&arr[1],&arr[2]);23for(int j=0;j<3; ++j)24 printf("%3d",arr[j]);25return0;26 }View Code38、⽤指向数组的指针变量实现输出指定学⽣的全部成绩1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4#define N 25656int main( )7 {8float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};9float (*p)[4] = score;10int n;11 scanf("%d",&n);12for(int i=0;i<4;++i)13 printf("%8.2f",p[n][i]);14return0;15 }View Code39、某班有5名同学,建⽴⼀个学⽣的简单信息表,包括学号、姓名、3门课程的成绩,编写程序,计算每名学⽣的平均成绩及名次1/*2测试数据3201701 zhao 29.8 85.4 65.44201702 qian 96.5 87.5 65.45201703 sun 85.4 65.4 84.66201704 li 63.4 95.4 86.37201705 zhou 65.9 84.6 97.58*/9 #include<stdio.h>1011struct student{12long no;13char name[20];14float score[3];15 }stu[5],*p;1617int rank(float *ave, float score){18int rank = 5;19for(int i=0; i<5; ++i)20if(ave[i]<score)21 rank--;22return rank;23 }2425int main()26 {27float ave[5] = {0.0};28int index = 0;29for(p=stu; p<stu+5; ++p){ //stu+530 scanf("%ld %s %f %f %f",31 &p->no,p->name,&p->score[0],&p->score[1],&p->score[2]);32 ave[index++] = (p->score[0]+p->score[1]+p->score[2])/3.0;33 }3435 printf("Number: Name: score: Average: rank:\n");36for(index=0,p=stu; p<stu+5; ++p){37 printf("%-9ld%-10s%-5.1f%-5.1f%-8.1f%-10.1f%-d\n",38 p->no,p->name,p->score[0],p->score[1],39 p->score[2],ave[index++],rank(ave,ave[index]));40 }41return0;42 }View Code40、某班有10名同学,建⽴学⽣结构体类型,包括学号、姓名、3门课程的成绩,编写程序,读⼊已准备好的⽂本⽂件student1.txt,为结构体数组变量赋值,计算每名学⽣的平均成绩及名次。
大连理工大学c语言题库(共12套)

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语言题库(共12套)(1)

fscanf(IN,"%s",i);
fun(i,'n');
fprintf(OUT,"%s",i);
fclose(IN);
fclose(OUT);
}
main()
{
static char str[]="turbocandborlandc++";
char ch;
printf("原始字符串:%s\n", str);
17.有两个整型变量dog和cat,若要从磁盘文件把数据读到其中,
正1,fp);
B、fscanf(fp,"%d%d",&dog ,&cat);
C、fscanf(dog ,cat,2,1,fp);
D、fscanf(fp,"%d",&dog ,&cat);
A、struct
B、int
C、union
D、go_to
11.以下叙述错误的是(b).
A、函数调用可以出现在一个表达式中
B、函数调用可以作为一个函数的形参
C、函数调用可以作为一个函数的实参
D、函数允许递归调用
12.若用数组名作为函数的实参,传递给形参的是(b)。
A、数组第一个元素的值
B、数组的首地址
C、数组元素的个数
4.在逻辑运算符中的运算级别由高向低依次为&&->||->!
5.do-while循环由do开始,while结束,循环体可能一次也不做。
6.continue语句用于终止循环体的本次执行.
7.若有定义和语句:
int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
c语言期末机考(大连理工大学题库)

转过不少资料神马的。
我也发一个回报一下~祝大家都有个好成绩~ 【第一套】一、单项选择1.下列数据中,为字符串常量的是(d)。
A、'A'B、How do you do.C、$abcD、"house"2.以下所列的C语言常量中,错误的是(b )。
A、0xFFB、1.2e0.5C、2LD、'\72'3.以下程序的输出结果是(d。
main(){float x=3.6;int i;i=(int)x;printf("x=%f,i=%d\n",x,i);}A、x=3.,i=4B、x=3 i=3.C、x=3,i=3D、x=3.,i=34.若k是整型,则以下程序段的执行结果是:(bk=-3;if(k<=0) printf("####")else printf("&&&&");A、####B、有语法错误,无结果C、&&&&D、####&&&&5.若x=2,y=3则x||y的结果是( c)。
A、3B、0C、1D、26.针对下列程序段回答问题( ).for(t=1;t<=100;t++){scanf("%d",&x);if(x<0) continue;printf("%3d",t);}A、x>=0时什么也不输出B、最多允许输出100个非负整数C、printf函数永远也不执行D、当x<0时整个循环结束7.以下程序的执行结果是( )。
main(){ int num = 0;while( num <= 2 ) { num++; printf( "%d,",num ); } }A、0,1,2B、1,2,3,C、1,2,3,4,D、1,2,8.选择正确的输入语句( )。
大连理工大学2012c语言期末模拟试题及答案

大连理工大学2012c语言期末模拟试题及答案一、1/字符串"\\\'efg\'\\"的长度是:( ).A、3B、11C、7D、52、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。
A、doubleB、不确定C、intD、float3、下列语句的结果是()。
main(){ int j;j=3;printf("%d,",++j);printf("%d",j++);}A、3,3B、4,4C、3,4D、4,34、逻辑表达式!(2-1)&&x||0的值是( )A、1B、0C、3D、25、int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为()。
A、3B、2C、1D、不一定6、执行语句 for(i=1;i++<4;); 后变量 i 的值是()。
A、3B、5C、4D、不定7、以下正确的描述是( ).A、只能用continue语句来终止本次循环B、switch语句中不能出现continue语句C、在循环中break语句不能独立出现D、goto语句只能用于退出多层循环8、下面合法的语句定义是( ).A、char a[ ]={'0','1','2','3','4','5'};B、int a[ ]="string";C、int a[5]={0,1,2,3,4,5};D、char a="string";9、char a[10];不能将字符串"abc"存储在数组中的是()。
A、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;B、a="abc";C、strcpy(a,"abc");D、a[0]=0;strcat(a,"abc");10、在C语言中,一维数组的定义方式为:类型说明符数组名()。
大连理工C语言考试题库3

大连理工C语言考试题库31.下列数据中,为字符串常量的是(d)。
A、'A'B、How do you do.C、$abcD、"house"2.以下所列的C语言常量中,错误的是( b)。
A、0xFFB、1.2e0.5C、2LD、'\72'3.以下程序的输出结果是(d)。
main(){float x=3.6;int i;i=(int)x;printf("x=%f,i=%d\n",x,i);}A、x=3.600000,i=4B、x=3 i=3.600000C、x=3,i=3D、x=3.600000,i=34.若k是整型,则以下程序段的执行结果是:( b) k=-3; if(k<=0) printf("####")else printf("&&&&");A、####B、有语法错误,无结果C、&&&&D、####&&&&5.若x=2,y=3则x||y的结果是(c )。
A、3B、0C、1D、26.针对下列程序段回答问题(b ).for(t=1;t<=100;t++){scanf("%d",&x);if(x<0) continue;printf("%3d",t);}A、x>=0时什么也不输出B、最多允许输出100个非负整数C、printf函数永远也不执行D、当x<0时整个循环结束7.以下程序的执行结果是(b )。
main(){ int num = 0;while( num <= 2 ) { num++; printf( "%d,",num ); } }A、0,1,2B、1,2,3,C、1,2,3,4,D、1,2,8.选择正确的输入语句(d )。
大连理工大学c语言题库

1.以下不符合C语言语法的赋值语句是()。
A、j=j=5;B、k=2*4,k*4;C、j++;D、y=float(j);2.以下运算符中,优先级最高的运算符是()。
A、?:B、,C、&&D、++3.根据下面的程序,正确的输出形式是( );main(){int i=5,j=10;printf ("i=%d,", i);printf ("j=%d ", j);}4. int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c的值为()。
A、1B、3C、2D、不一定5.在以下一组运算符中,优先级最高的运算符是:( )A、=B、&&C、<=D、%6.执行语句 for(i=1;i++<4;); 后变量 i 的值是()。
A、3B、5C、4D、不定7.若i为整型变量,则以下循环执行次数是()。
for(i=2;i==0;) printf("%d",i--);A、0次B、2次C、无限次D、1次8.下列数组说明中,正确的是()。
A、char str1[],str2[];str2={"China"}; strcpy(str1,str2);B、char str[]="China";C、char str[]; str="China";D、char str1[5],str2[]={"China"}; str1=str2;9.设有数组定义: char array [ ]="China"; 则数组 array所占的空间为()。
A、7个字节B、6个字节C、5个字节D、4个字节10.以下能对二维数组a进行正确初始化的语句是()。
A、int a[][3]={{1,2,3},{4,5,6}};B、int a[2][4]={{1,2,3},{4,5},{6}};C、int a[2][]={{1,0,1},{5,2,3}};D、int a[][3]={{1,0,1}{},{1,1}};11.用户定义的函数不可以调用的函数是()。
大连理工大学智慧树知到“计算机科学与技术”《C C++语言程序设计》网课测试题答案3

大连理工大学智慧树知到“计算机科学与技术”《C C++语言程序设计》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共15题)1.C语言程序的三种基本结构是顺序结构,选择结构,循环结构。
()A.正确B.错误2.构造函数有且只有一个。
()T、对F、错3.在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][1]的值是5。
()T、对F、错4.I/O操作分别由两个类istream和ostream提供,由它们派生出一个类(),提供双向I/O操作。
A.iostreamB.cinC.coutD.void5.C++三大特征中错误的是()。
A、私有B、封装C、继承D、多态6.控制格式I/O的操作中,setw()是设置域宽的。
()A.正确B.错误7.在析构函数前面加上关键字virtual进行说明,则称该析构函数为()。
A.虚构造函数B.虚成员函数C.虚析构函数D.以上都不是8.构造函数的功能是对对象进行初始化。
()T、对F、错9.定义数组 float a[2][3];选出不属于该数组的数据元素是()。
A.a[0][0]B.a[2][3]C.a[1][2]D.a[0][2]10.当用类的一个对象去初始化类的另一个对象时,调用()。
A.析构函数B.拷贝构造函数C.静态函数D.以上都不是11.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为()。
A、1.4B、1C、2.0D、212.C语言中,下列合法的字符型常量是()。
A、"A"B、'a’C、'12’D、"12"13.设int a=1,则执行完循环while(a++A.正确B.错误14.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()。
A.const char *p=“ABCD”B.char const *p=“ABCD”C.char *const p=“ABCD”D.const char *const p=“ABCD”15.构造函数的功能是对对象进行初始化。
2013大连理工大学C语言期末模拟试题9套

【第一套】一、单项选择1.下列数据中,为字符串常量的是(D)。
A、'A'B、How do you do.C、$abcD、"house"2.以下所列的C语言常量中,错误的是(B )。
A、0xFFB、1.2e0.5C、2LD、'\72'3.以下程序的输出结果是(D)原来答Amain(){float x=3.6;int i;i=(int)x;printf("x=%f,i=%d\n",x,i);}A、x=3.600000,i=4B、x=3 i=3.600000C、x=3,i=3D、x=3.600000,i=34.若k是整型,则以下程序段的执行结果是:( B)原来答A k=-3;if(k<=0) printf("####")else printf("&&&&");A、####B、有语法错误,无结果C、&&&&D、####&&&&5.若x=2,y=3则x||y的结果是( C)。
A、3B、0C、1D、26.针对下列程序段回答问题(B ).for(t=1;t<=100;t++){scanf("%d",&x);if(x<0) continue;printf("%3d",t);}A、x>=0时什么也不输出B、最多允许输出100个非负整数C、printf函数永远也不执行D、当x<0时整个循环结束7.以下程序的执行结果是(A B )。
main(){ int num = 0;while( num <= 2 ) { num++; printf( "%d,",num ); } }A、0,1,2B、1,2,3,C、1,2,3,4,D、1,2,8.选择正确的输入语句( )。
大连理工大学C语言模拟题机房题库单选、判断、填空(分章节_共十一章)

第一部分注意事项1. 请对照《课件》和《教材》进行练习。
2. 熟悉键盘,注意竖杠“|”和反斜杠“\”的位置,请在西文状态下输入。
3. 单选题、判断题和填空题要会验证。
当输入汉字时,可能输入提示框是灰色的,再按一次中英文切换键即可。
4. 程序填空题不能删除注释/*****FILL*****/,但必须删除标记符号_____,否则编译通不过。
如,for(i=10; ____; i++)。
5. 程序改错题不能删除注释/*****ERROR*****/,仅在其下一行进行修改。
6. 程序填空题和程序改错题存盘即可。
但最好编译运行一下,编译时会自动存盘。
编译帮助检查语法错误,运行帮助检查逻辑错误。
7. 程序设计题不能删除注释/****BEGIN*****/和/****END*****/,只能在两个标记符之间编写程序。
必须保证编译、链接、运行都正确。
8. 以上程序题中不能更改程序结构和其它位置的程序代码,可以忽略其它程序位置的警告。
9. 如果VC发生死机(见图,可用按钮都变成灰色),请结束VC进程,再继续答题或重答。
结束VC进程的方法:先进入“任务管理器”;再选下面一种方法操作:方法1:选择“应用程序”标签,选中“VC任务”,按“结束任务”。
方法2:选择“进程”标签,选中“MSDEV.EXE”,按“结束进程”。
10. 提交试卷并看到成绩后再离开。
11.出现问题立即请示监考老师。
12.请记住几个常用的函数。
数学函数:sin(),cos(),tan(),log(),exp(),pow(),sqrt(),abs(),fabs()字符串函数:strcat(),strcpy(),strcmp(),strlen(),strlwr(),strupr()输入输出函数:printf(),scanf(),putchar(),getchar(),puts(),gets(),fopen(),fclose(),fprintf(),fscanf(),feof()其它实用函数:rand(),exit()第二部分概念题第1章概述1. C程序是的基本组成单位是_______. 函数2. C语言的程序结构分为______、选择结构和循环结构。
大连理工大学C语言期末总复习(全)清华大学版

• 按生存期和作用域分类变量. – 外部变量. – 外部静态变量. – 内部静态变量. – 自动变量. – 寄存器变量.
• 外部变量. – 定义位置:函数外 – 定义语法: typename varname; – 生存期:从程序开始至程序结束. – 作用域:从定义点至文件尾.其它文件可以引用. – 初值:不初始化值为0.
C语言总复习
数据类型及运算符 • 算术类型
– 常量和变量 – 运算符
• 数组 • 指针 • 结构 • 共用体 • 枚举
数据类型及运算符---算术类型
• 整型 – 带符号整型 • 字符型char1字节-128~127 • 短整型short2字节-32768~32767 • 基本型int • 长整型long int4字节-231~231-1 – 不带符号整型 • 字符型unsigned char1字节0~255 • 短整型unsigned short2字节0~65535 • 基本型unsigned int • 长整型unsigned long ing4字节0~232-1
• 说明.上述变量定义语法是最简单的情况。一般地: • 在varname之前可以有星号*,表示指针。 • 在varname之后可以有方括号[ ],表示数组。 • 在varname之后可以有圆括号(),表示函数。
数据类型及运算符---变量
• 变量的生存期. – 指变量存在的那段时间,即从给变量分配内存到收回该内存的 时间间隔.
– sizeof (表达式).表达式的类型长度(字节数) – sizeof (类型名).类型的长度(字节数) – sizeof (数组名).数组的字节数 • 强制转换运算符.(类型名)
数据类型及运算符---表达式
2013大连理工大学C语言期末模拟试题9套

【第一套】一、单项选择1.下列数据中,为字符串常量的是()。
A、'A'B、How do you do.C、$abcD、"house"2.以下所列的C语言常量中,错误的是( )。
A、0xFFB、1.2e0.5C、2LD、'\72' 3.以下程序的输出结果是()。
main(){float x=3.6;int i;i=(int)x;printf("x=%f,i=%d\n",x,i);}A、x=3.,i=4B、x=3 i=3.C、x=3,i=3D、x=3.,i=34.若k是整型,则以下程序段的执行结果是:( )k=-3;if(k<=0) printf("####")else printf("&&&&");A、####B、有语法错误,无结果C、&&&&D、####&&&&5.若x=2,y=3则x||y的结果是( )。
A、3B、0C、1D、26.针对下列程序段回答问题( ).for(t=1;t<=100;t++){scanf("%d",&x);if(x<0) continue;printf("%3d",t);}A、x>=0时什么也不输出B、最多允许输出100个非负整数C、printf函数永远也不执行D、当x<0时整个循环结束7.以下程序的执行结果是( )。
main(){ int num = 0;while( num <= 2 ) { num++;printf( "%d,",num ); } }A、0,1,2B、1,2,3,C、1,2,3,4,D、1,2,8.选择正确的输入语句( )。
:(其中:char string[20];)使得string 的内容为"I am student".A、scanf("%s", string);B、scanf("%c", &string);C、scanf("%s", &string);D、gets(string);9.对以下说明语句 inta[10]={6,7,8,9,10}; 的正确理解是()。
大连理工大学C语言学习知识机房模拟试题之程序设计题(全)

程序题程序设计/*------------------------------------------------ 【程序设计】--------------------------------------------------功能:编写函数fun(str,i,n),从字符串str中删除第i个字符开始的连续n个字符(注意:str[0]代表字符串的第一个字符)。
------------------------------------------------*/#include "stdio.h"#include "string.h"main(){char str[81];int i,n;void fun(char str[],int i,int n);void TestFunc();printf("请输入字符串str的值:\n");scanf("%s",str);printf("你输入的字符串str是:%s\n",str);printf("请输入删除位置i和待删字符个数n的值:\n");scanf("%d%d",&i,&n);while (i+n-1>strlen(str)){printf("删除位置i和待删字符个数n的值错!请重新输入i和n的值\n");scanf("%d%d",&i,&n);}fun(str,i,n);printf("删除后的字符串str是:%s\n",str);TestFunc();}void fun(char str[],int i,int n){/*********Begin**********/while(str[i+n-1]){str[i-1]=str[i+n-1];i++;}str[i-1]='\0';/* 或int j=i-1,k=i+n-1;while((str[j++]=str[k++])!='\0');*//********** End **********/ }void TestFunc(){FILE *IN,*OUT;char i[200];/*char o[200];*/IN=fopen("in.dat","r");if(IN==NULL){printf("Read File Error"); }OUT=fopen("out.dat","w"); if(OUT==NULL){printf("Write File Error"); }fscanf(IN,"%s",i);fun(i,2,8);fprintf(OUT,"%s\n",i);fclose(IN);fclose(OUT);}/*------------------------------------------------【程序设计】--------------------------------------------------功能:请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
大连理工大学c语言2013秋季学期模拟

*pa=*pb;
*pb=temp;
}
main()
{ int x, y;
x=10; y=20;
/**********ERROR**********/
change(x,y);
printf("%d %d", x, y);
}
2、/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:以下函数功能,完成字符串的复制。
--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
一、选择题
1、printf ("a\rHappi\by").在屏幕上正确的输出形式是( )
A .Happy
B. Happi
C. aHappi
D. aHappy
2、执行下面程序段后,s的值是( )
int s=5;
switch(++s)
{case 6;
case 7;s+=2
case 8;
case 9:s+=2;
}
A 8
B 7
C 10
D 6
3、逻辑运算符两侧运算对象的数据类型( )
A.只能是O或1
B.可以是任何类型的数据
C.只能是0或非0正数
D.只能是整型或字符型数据
4、设有如下程序段:
int k =10;
2022年大连理工大学城市学院公共课《C语言》科目期末试卷A(有答案)

2022年大连理工大学城市学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、若x=0123,则表达式(5+(int)(x))&(~2)的值是_______。
2、结构化程序由________、________ 、________ 3种基本结构组成。
3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、若a、b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后a的值为_______,b的值为_______,c的值为_______。
5、在C语言的赋值表达式中,赋值号左边必须是_______6、当运行以下程序时,从键盘输入book<回车>book囗<回车>(囗表示空格),则下面程序段的运行结果是_______。
char al[80],a2[80],*sl=al,*s2=a2;gets(s1);gets(s2);if(!strcmp(sl,s2))printf("x");else printf("#");printf("%d",strlen(strcat(sl,s2))}7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是_______,改正后为_______。
void add(float a,float b){float c;c=a+b;return c;}8、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。
struct s{char data;_______}node;9、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);10、设有如下定义:#define SWAP(T,X,Y){T=X;X=Y;Y=T;}以下程序段将通过调用宏实现变量x和y内容的交换,请填空。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.以下叙述中正确的是()。
A、C语言中的函数不可以单独进行编译
B、C语言的源程序不必通过编译就可以直接运行
C、C源程序经编译形成的二进制代码可以直接运行
D、C语言中的每条可执行语句最终都将被转换成二进制的机器指令
2.若有说明语句:char c='\72';则变量c()。
A、说明不合法,c的值不确定
B、包含2个字符
C、包含3个字符
D、包含1个字符
3.定义字符变量c1的值是'A',c2的值是'D'.
执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。
A、65,66
B、65,68
C、A,68
D、A,B
4.若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假",则以下不能满足要求的表达式是()。
A、A%2==1
B、A%2
C、!(A%2==0)
D、!(A%2)
5.为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定: else子句总是与()配对。
A、其之前最近的if
B、其之后最近的if
C、同一行上的if
D、缩排位置相同的if
6.下面程序段运行的结果是( ).
x=-1;
do{
x=x*x;
}while (!x);
A、循环执行一次
B、有语法错误
C、死循环
D、循环执行两次
7.以下正确的描述是( ).
A、只能在循环体内和switch语句内使用break语句
B、continue语句的作用是终止整个循环的执行
C、从多层嵌套的外层循环中退出时,只能使用goto语句
D、在循环体内使用break和continue语句的作用相同
8.以下不能正确定义二维数组的选项是()。
A、int a[2][]={{1,2},{3,4}};
B、int a[2][2]={{1},2,3};
C、int a[2][2]={{1},{2}};
D、int a[][2]={1,2,3,4};
9. char a[10];不能将字符串"abc"存储在数组中的是()。
A、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;
B、a="abc";
C、strcpy(a,"abc");
D、a[0]=0;strcat(a,"abc");
10.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A、整型常量
B、整型常量或整型表达式
C、整型表达式
D、任何类型的表达式
11.在定义全局变量和局部静态变量的同时赋值,变量的初始化在()时确定的.
A、运行
B、编辑
C、编译
D、调试
12.以下不正确的说法是:C语言规定()。
A、实参可以是常量,变量或表达式
B、实参可以为任何类型
C、形参可以是常量,变量或表达式
D、形参应与其对应的实参类型一致
13. C语言程序中必须有的函数是()。
A、#include "stdio.h"
B、main
C、printf
D、scanf
14.在"文件包含"的预处理中,被包含的文件应是( ).
A、文本文件
B、可执行文件
C、目标文件
D、二进制文件
15.若有说明:int *p,m=5,n;以下正确的程序段是()。
A、scanf("%d",&n);*p=n;
B、p=&n;scanf("%d",*p)
C、p=&n;scanf("%d",&p);
D、p=&n;scanf("%d",p);
16.若有以下程序段,则使用错误的选项是( ).
struct student
{
int num;
int age;
};
struct student stu[3] ={{1001,20},{1002,19},{1004,20}};
main();
{
struct student *p;
p=stu;
…
;
}
A、(*p).num
B、(p++)->num
C、p=&stu.age
D、p++
17.在函数调用语句中,fopen("my.dat","rb");的含义是( ).
A、为写打开一个二进制文件
B、读一个二进制文件
C、为读/写打开一个二进制文件
D、为输入打开一个二进制文件
1. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
2. C语言printf函数的格式控制串中可以设置需要的普通字符,输出时会原样输出。
3. 求解表达式max=(a>b)?a:b的步骤是,先求解条件表达式(a>b),再根据它的值将a或b 赋给max.
4. 已知a=4,b=2,c=3,d=5,表达式a>b?a:c<d?c:d的值为3.
5. for循环的三个表达式都可以省略.
6. do-while循环由do开始,while结束,在while(表达式)后面不能加分号.
7. 定义char s[9];gets(s);若键盘输入的字符串是Turbo c↙(↙代表按回车键操作),则键盘输入的字符最终输入给数组s中的字符个数是7.
8. 对任何一个二维数组的元素,都可以用数组名和两个下标唯一地加以确定.
9. char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句。
10. C语言中,只允许直接递归调用而不允许间接递归调用.
11. 在一个函数中定义的静态局部变量不能被另外一个函数所调用.
12. 在C语言中,程序总是从第一个函数开始执行,最后一个函数结束.
13. 用一个#include命令可以同时指定数个被包含文件.
14. 若定义 int array[5] ,*p;则赋值语句 p=&array;是正确的.
15.共用体变量使用过程中,可在同一内存段中存放几种不同类型的成员.
16. C语言中,fprintf是一个向文件写数据(输出)函数。
1.已知a=-13,b=6, a%b的十进制数值为_____.
2.int x; x=(3+4)%5-6, 则x的值为_____.
3.执行下列语句后, b的十进制值是_____.
int x=240,y=15,b;
char z='A';
b=(( x && y ) && ( z < 'a' ));
4.int x=2,y=2,z=0; 则表达式x==y>z的值为_____.
5.C语言中,数组元素的下标下限为_____.
6.函数不可以进行嵌套定义,但可以进行嵌套_____.
7.设有以下结构类型说明和变量定义,在TC编译环境下,变量b在内存所占字节数是_____。
struct stud { short int age; char num[3]; float s[2]; double ave; } b,*p; 8.调用 fopen 函数打开一文本文件,在"使用方式"这一项中, 为追加而打开需填入_____.
答案 DDADA AAABB CCBAD CD
对对对错对错对对对错对错错错对对
-1 -4 1 0 0 调用 21 a(a+)。