
大学里c语言挂科了,补考容易过关。大部分学校补考都很好过,补考题目难度和第一次考试差不多,但题型相对雷同,甚至会有重复题目。所以只要认真稍微复习一下,补考都能过的。
相对于大学考试来说的,学生在大学每学期的期终考试中,对不及格的科目,学校会安排在下一个学期的初再给那些考试不及格的同学一次重新考试的机会,就叫做"补考",如果补考不及格的话,则必须进行重修,重修后补考不及格,则可能拿不到毕业证。
补考是各办学单位为考试不及格或因故未参加考试的学生而举行的考试。学生的学年成绩不论有几科不及格,均需进行补考。学生因病或其它特殊原因,未能参加考试者,准予补考。
对考试违纪的学生进行批评教育后,可准予补考。补考一般安排在开学初两周内进行。试题的范围、难易程度和评分标准应与学年考试相同。
一. 选择题 (共15题, 每题2分,共30分)1. 定义结构体的关键字是()
A. union B. enumC.struct D.typedef
2. 设整型变量a为5,使b不为2的表达式是( )
A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:1
3. 下面哪一项是不正确的字符串赋值或赋初值的方法()
A. char *strstr= “china”
B. char str[7]= {‘c’, ‘h’, ‘i’, ‘n’, ‘a’}
C. char str1[]= “china”,str2[]=“123”
D. char str1[10]str1= “china”
4. 以下对二维数组a进行正确初始化的是( )
A. int a[2][3]={{1,2},{3,4},{5,6}} B. int a[ ][3]={1,2,3,4,5,6}
C. int a[2][ ]={1,2,3,4,5,6} D. int a[2][ ]={{1,2},{3,4}}
5. 选出下列标识符中不是合法的标识符的是()
A. hot_do B. cat1 C. _pri D. 2ab
6. 以下说法中正确的是( )
A. C语言程序总是从第一个的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分
7. 若已定义:int a[9], *p=a并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )
A. p+1 B. a+1 C. a++D. ++p
8. 若有说明: int i,j=7, *p=&i, 则与i=j等价的语句是( )
A. i= *p B. *p=*&j C. i=&j D. i=* *p
9. 若变量c为char类型,能正确判断出c为小写字母的表达式是( )
A. ‘a’<=c<= ‘z’ B. (c>= ‘a’) || (c<= ‘z’)
C. (‘a’<=c) and (‘z’>=c) D. (c>= ‘a’) &&(c<= ‘z’)
10. 以下程序的输出结果是( )
main()
{ int a[]={1,2,3,4,5,6,7,8,9}, *p
p=a
*(p+3)+=2
printf( “%d,%d\n”,*p,*(p+3) )}
A. 0, 5 B. 1, 6 C. 1, 5 D. 0, 6
11. 以下程序的输出结果是( )
main()
{ int a=5
float x=3.14
a*=x*(‘E’- ‘A’)
printf(“%f\n”,(float)a)}
A. 62.000000 B. 62.800000 C. 63.000000 D. 62
12. 以下程序的输出结果是( )
#define f(x) x*x
main()
{ int a=6,b=2,c
c=f(a)/f(b)
printf(“%d\n”,c)}
A. 9 B. 6 C. 36 D. 18
13. 定义如下变量和数组:int iint x[3][3]={1,2,3,4,5,6,7,8,9}
则语句for(i=0i<3i++) printf("%d ",x[i][2-i])的输出结果是( )
A. 1 5 9B. 1 4 7C. 3 5 7 D. 3 6 9
14. 下列程序段的输出结果是 ( )
void main( )
{ int k
for (k=1k<5k++)
{ if(k%2!=0)
printf( “#” )
else
printf(“*”) }
}
A. #*#* B . *#*#C. ## D. **
15. 下列程序执行后输出的结果是( )
int d=1
fun (int p)
{ int d=5
d + =p + +
printf("%d,",d)}
main( )
{ int a=3
fun(a)
d + = a + +
printf("%d\n",d)}
A. 8, 4 B. 9, 6 C. 9, 4 D. 8, 5
二. 填空题(共7题,每空2分,共30分)
1. 数组 int a[3][5]共定义了_______________个元素。
2. 有float f=3.1415927则 printf(“%5.4f”, f )输出的结果是_______________。
3. 下面程序的功能是:输出 100以内(不包含100)能被 3整除且个位数为 6的所有整数,请填空。
main( )
{ int i
for(i=1_______________i++)
if (_______________)
printf("%d", i);
}
4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是 _______________
5. 以下是使用指针,进行字符串复制的程序,请填空。
main()
{ char a[]= “Tsinghua University”, b[30], *p1,*p2
p1=a
p2=b
for(*p1!= ‘_______________’p1++, p2++)
_______________=_______________
*p2= ‘_______________’
printf(“string a is:%s\n”,a)
printf(“string b is:%s\n”,b)
}
6. 下面程序用冒泡法对数组a进行降序排序,请填空。
main()
{ int a[5]={4,7,2,5,1}
int i,j,m
for(i=0i<4i++)
for(j=0j<_______________j++)
if( _______________<_______________ )
{ m=a[ j]
a[ j]=a[ j+1]
a[ j+1]= m}
for(i=0i<5i++)
printf("%d ",a[i])
}
7. 函数fun的功能是:使一个字符串按逆序存放,请填空。
void fun (char str[])
{ char mint i,j
for(i=0,j=strlen(str)i<_______________i++,j--)
{ m=str[i]
str[i]= _______________
str[j-1]=m
}
printf("the rotated string is %s\n",_______________)
}
1.循环程序;计算Sn=a+aa+aaa+...+aa+a的值 其中a是一位数字#include<stdio.h>
void main()
{
int n,sum=0,i,tmp
printf("input a digit:")
scanf(%d",&n)
for(i=0,tmp=0i<ni++)
{
tmp=tmp*10+n
sum+=tmp
}
for(i>0i--)
{
tmp=tmp/10
sum+=tmp
}
printf("sum=%d\n",sum)
}
2.一维数组:找出数组中最大值和此值的下标
#include <stdio.h>
#include <malloc.h>
void main()
{
int n=0,*arr=NULL
int temp=0, index=0,i
printf("输入多少个数?")
scanf("%d",&n)
arr=(int*)malloc(sizeof(int)*n)
for (i=0i<ni++)
{
printf("请输入第%d个数: ",i+1)
scanf("%d",&arr[i])
}
for (i=0i<ni++)
{
if (arr[i]>temp)
{
temp=arr[i]
index=i
}
}
printf("最大数为:%d 下标为:%d \n", temp, index)
}
3.二位数组:完成3*3矩阵的转置
#include <stdio.h>
void rotate(int a[3][3])
{
int i,j
int temp
for(i=0i<3i++)
for(j=0j<ij++)
if(i!=j)
{
temp=a[i][j]
a[i][j]=a[j][i]
a[j][i]=temp
}
}
main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}
int i,j
rotate(a)
for(i=0i<3i++)
{
for(j=0j<3j++)
printf("%d ",a[i][j])
printf("\n")
}
getchar()
}
4.输入一行字符,统计其中英文字幕.空格.数字.和其他字符的个数
#include <stdio.h>
#include <string.h>
void main()
{
char a[1000], i, x1, x2, x3, x4
scanf("%s", a)
x1 = 0x2 = 0x3 = 0x4 = 0
for (i = 0i <strlen(a)i++)
if (((a[i] >='a') &&(a[i] <= 'z')) || ((a[i] >='A') &&(a[i] <= 'Z'))) x1 ++
else if (a[i] == ' ') x2++
else if ((a[i] >= '0') &&(a[i] <= '9')) x3++
else x4++
printf("%d %d %d %d\n", x1, x2, x3, x4)
}
5.定义学生结构体,包括学号,姓名,各科成绩等,计算每个学生的总成绩和平均成绩
#include <stdio.h>
#include <string.h>
#define STU_NUM 10//学生数
#define SCORE_NUM 3//每个学生的科目数
typedef struct /*定义结构体数组*/
{
char num[20]/*学号*/
char name[20]/*姓名*/
float score[SCORE_NUM]/*成绩*/
float total//总分
float average//平均分
} Student
Student stu[STU_NUM]
//输入学生信息
void input()
{
int i,j
printf("请输入%d个学生的信息:\n",STU_NUM)
for(i=0i<STU_NUMi++)
{
printf("学号:")
scanf("%s",stu[i].num)
printf("姓名:")
scanf("%s",stu[i].name)
for(j=0j<SCORE_NUMj++)
{
printf("科目%d的成绩:",j+1)
scanf("%f",&stu[i].score[j])
}
}
}
//输出学生信息
void output()
{
int i,j
//打印表头
printf("学号\t姓名\t")
for(j=0j<SCORE_NUMj++)
{
printf("科目%d\t",j+1)
}
printf("总分\t平均分\n")
//打印所有学生信息
for(i=0i<STU_NUMi++)
{
printf("%s\t%s\t",stu[i].num,stu[i].name)
for(j=0j<SCORE_NUMj++)
{
printf("%3.2f\t",stu[i].score[j])
}
printf("%3.2f\t%3.2f\n",stu[i].total,stu[i].average)
}
}
//计算总分和平均分
void process()
{
int i,j
for(i=0i<STU_NUMi++)
{
stu[i].total=0
for(j=0j<SCORE_NUMj++)
{
stu[i].total+=stu[i].score[j]
}
stu[i].average=stu[i].total/SCORE_NUM
}
}
void main()
{
input()
process()
output()
}
6.下面程序的输出结果
char s[]=“ABCD”;
main()
{
char*p;
for(p=sp<s+4p++)
printf("%s\n",p)
}/*end of main*/
输出结果:
ABCD
BCD
CD
D
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)