版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学 院 _系_班 级_学 号_姓 名_.装.订.线扬州大学试题纸( 0 0 学年 第 二 学期) 信息工程 学院 班(年)级课程 C语言程序设计模拟试卷 题目一二三四五总分得分阅卷人得分阅卷人审核人一、单项选择题(20分,每题1分)1下列表达式中,不能正确表达代数式含义的C语言表达式是( )。Ax/a/b*y*2 2*x*y/a/b2*x*y/a*bx*y/b/a*22若s是int型变量,则表达式s%2+(s-1)%2的值为( )A0 1 1 23若调用一个函数,且此函数中没有return语句,则表示该函数( )。A没有返回值 B返回若干个系统默认值 C返回一个用户所希望的函数值 D返回一个不
2、确定的值4执行下列程序段后的输出结果是( )。 char str =“tbcLanguagen0g”; printf("%dn", strlen(str); A.12 B.13C.14 D.165 以下程序的输出结果是( )。 main() int x=1,y=2,z=3; x=y-<=x|x+y !=z printf(“ %d,%d”,x,y) A.0,1 B.0,2C.1,1 D.1,26以下不是死循环的语句是( )A. int i=100; while(1) i=i%100+1; if(i>100) break;
3、 B. for( ; ; );C. int k=0; do +k; while(k>=0);D. int s=6; while(s); -s;7下面能使i的运行结果为4的表达式语句是( )。Aint i=0,j=0; (i=3,(j+)+i); int i=1,j=0; j=i=(i=3)*2); int i=0,j=1; (j= =1)?(i=1):(i=3); int i=1,j=1; i+=j+=2;8若有以下宏定义: #define N 2 #define Y(n) (N+1)*n) 则执行语句“z=2*(N+Y(5);”后的结果为( )。A语句有错误 z=34 z=70 z无定
4、值9下列程序是求1到100的累加和,其中有3个程序段能完成规定功能,有1个所完成的功能与其它程序不同,它是( )。 As=0,i=0; while (i<=100) s+=i+; Bs=0,i=1; while(i+<100) s+=i; Cs=0,i=0; while(i<100) s+=+i; Ds=0,i=0; while(+i<=100) s+=i; 10凡在函数中未指定存储类别的变量,其隐含的存储类别是( )。 A自动(auto) 静态(static) 外部(extern) 寄存器(register)11已有定义int k=2;int *p1,*p2;且p1和
5、p2均已指向变量k,下面不能正确执行的赋值语句是( )。 Ak=*p1+*p2 p2=k; p1=p2; k=*p1*p2;12若有以下定义,则对a数组元素地址的正确引用是( )。 int a5,*p=a;Ap+5 *a+1 &a+1 &a013若有以下定义和赋值语句,则对b数组的第i行第j 列(假设i,j已正确说明并赋值)元素值的非法引用是( )。 int b23=0,(*p)3; p=b; A*(*(p+i)+j) *(pi+j) *(p+i)+j (*(p+i)j14设有说明“int a44,(*p)4=a;”,以下与数组元素a33不等价表示的是( )。 A*(a3+3)
6、 *(*(a+3)+3) *(*(p+3)+3) (*(*(a+3)+3)15若有以下定义,则数值不为3的表达式是( )。int x10=0,1,2,3,4,5,6,7,8,9,*p1;Ax3 p1=x+3,*p1+ p1=x+2,*(p1+) p1=x+2,*+p116以下程序的输出结果是( )。#include <stdio.h>#include <string.h>main() char *s1=”AbDeG”,*s2=”AbdEg”; s1+=2,s2+=2; printf(“%dn”,strcmp(s1,s2);A正数 负数 零 不确定值17已有定义int (
7、*p)( );指针p可以( )。 A代表函数的返回值 指向函数的入口地址 表示函数的类型 表示函数返回值的类型18以下程序的运行结果是( )。 #include <stdio.h> main( ) struct date int year,month,day;today;printf(“%dn”,sizeof(struct date);A6 8 10 1219设有说明:struct char name15,sex;int age; float score;stu,*p=&stu;以下不能正确输入结构体成员值的是( )。Ascanf(“%c”,&p->sex);
8、 scanf(“%s”,);scanf(“%d”,&stu.age); scanf(“%f”, p->score);20若有以下声明和语句: int t33,*pt3,k; for(k=0;k<3;k+) ptk=&tk0; 则表达式*(*(pt+1)+2)所引用的是 ( )。 A. t20 B. &t20 C. t12 D. &t12得分阅卷人审核人二、基本概念题(10分,每题1分)1C语言提供了四种基本的数据类型,它们是整型、实型、字符型和 。2若定义了int x;则将x强制转换成双精度类型应该写成 。3表达式8.0*(1/2)的
9、值为 。 4C语言规定,在一个源程序中,main函数的位置 。5C语言中的标识符只能由字母、数字和下划线字符组成,且第一个字符必须是 。6若所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是 。7若二维数组a有m列,则计算任一元素aij在数组中位置的公式是 (假设s00位于数组的第一个位置上)。8在C语言中,&运算符作为单目运算符时表示的是 运算。9若要是下列程序段中指针变量p指向一个存储整型数据的存储单元,则应填入 。 int *p; p= malloc(sizeof(int);10函数调用strcat(strcpy(str1,str2),str3) 的功能是: 。得分
10、阅卷人审核人三、写出程序运行结果(20分,每题4分)1【程序】main( )int x =0,1,2,3,4,5,6,7,8,9;int s=0, i, *p;p=&x0;for (i=0; i<=9; i+=2) s+=*(p+i);printf(“%dn”, s);2【程序】#include <stdio.h> #include <string.h>void fun(char *w,int m) char s,*p1,*p2; p1=w; p2=w+m-1; while(p1<p2) s=*p1+; *p1=*p2-; *p2=s;main( )
11、 static char a =”GFEDCBA”; fun(a,strlen(a); puts(a); 3假设运行以下程序时,从键盘输入的是:How are youGood morningHello world【程序】#include "stdio.h"#include "string.h"void main() int i; char s80,str380; for(i=0;i<3;i+) gets(stri); strcpy(s,str0); for(i=1;i<3;i+) if(strlen(s)<strlen(stri) st
12、rcpy(s,stri); printf("%s %d",s,strlen(s); 4【程序】#include <stdio.h>void num( ) extern int x,y; int a=15,b=10; x=a-b; y=a+b; int x,y;main( ) int a=7,b=5; x=a+b; y=a-b; num( ); printf(“%4d%4dn”,x,y);5. 【程序】 运行下面的程序,假设从键盘上输入值为3。#include "stdio.h"main() int j,k,n,temp; int a66; s
13、canf("%d",&n); for(k=0;k<n;k+) for(j=0;j<n;j+) akj=k*n+j; for(k=0;k<n;k+)for(j=0;j<n/2;j+) temp=an-j-1k; an-j-1k=akj; akj=temp; for(k=0;k<n;k+) for(j=0;j<n;j+) printf("%d",akj); printf("n"); 得分阅卷人审核人四、完善程序(12分,每空1分)1以下程序打印所有符合下列条件的3位正整数:是某一个数的平方数,其
14、中有两位数字相同。如100、121等。 main( ) int a,b,c,n,k; for(k=10; ;k+) n= (1) ; if(n>999) (2) ; a=n/100; b= (3) ; c=n%10; if(!(a-b)*(b-c)*(c-a) printf(“n%d,%d”,n,k); 2下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0。main( ) int i, x, y = 1; scanf(“%d”, (4) ); for(i = 2; i<=x-1; i+) if (5) y = 0; (6) printf(“%dn”, y);3
15、以下程序可把输入的十进制数以十六进制数的形式输出。main() char b17 = “0123456789ABCDEF”; int c64, d, i = 0, base = 16; long n; printf(“Enter a number:n”); scanf(“%ld”, &n); do ci = (7) ; i+; n = (8) ; while (n != 0); printf(“Transmite new base:n”); for(-i; i >= 0; -i) d = ci; printf(“%c”, b (9) ); printf(“n”); 4以下程序可分别求出方阵a中两个对角线上元素之和。#define N 6main( ) int aNN,i,j,k,pr1,pr2; for(i=0;i<N;i+) for(j=0;j<N;j+) scanf(“%d”,*(a+i)+j); pr1=pr2=0; for(i=0;i<N;i+) pr1= (10) +(*(*(a+i)+i); k= (11) ; pr2= (12) +*(*(a+i)+k); printf(“pr1=%d,pr2=%dn”,pr1,pr2);得分阅卷人审核人四、编程(共38分)1求下列序列之值1+1/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论